Python UDP程式設計小示例

2022-04-03 18:53:25 字數 1324 閱讀 3668

參照著廖雪峰的python教程敲的**。

這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端;客戶端給伺服器端傳送資料然後將接收到的返回資料列印。

udpserver.py:

# -*- coding: utf-8 -*-

import socket

#sock_dgram指定了這個socket的型別是udp

s = socket.socket(socket.af_inet, socket.sock_dgram)

#繫結埠

s.bind(('127.0.0.1', 9999))

#不需要呼叫listen()方法,而是直接接收來自任何客戶端的資料

print('bind udp on 9999....')

while true:

#接收資料

data, addr = s.recvfrom(1024) #recvfrom()方法返回資料和客戶端的位址與埠

print('received from %s:%s.' % addr)

if data == b'exit':

s.close() #如果不關掉socket,則下次執行程式會報埠已被占用

break

else:

s.sendto(b'hello, %s!' % data, addr)

udpclient.py:

# -*- coding: utf-8 -*-

import socket

s = socket.socket(socket.af_inet, socket.sock_dgram)

for data in [b'michael', b'tracy', b'sarah', b'exit']:

#傳送資料

s.sendto(data, ('127.0.0.1', 9999))

#接收資料

print(s.recv(1024).decode('utf-8'))

s.close()

因為udp是面向非連線的,所以比tcp程式設計少了「建立連線(客戶端發起伺服器端接受)和監聽埠(客戶端)」的步驟,並且接收資料和傳送資料所使用的資料也不一樣。

執行結果:

伺服器端:

客戶端:

Python UDP程式設計小示例

參照著廖雪峰的python教程敲的 這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端 客戶端給伺服器端傳送資料然後將接收到的返回資料列印。udpserver.py coding utf 8 import socket sock dgram指定了這個socket的型別是u...

Python UDP程式設計

udp則是面向無連線的協議。資料報就是這種形式。比如 簡訊。只要資料傳送出去。無需去管對方是否接收到。使用udp協議時,不需要建立連線,只需要知道對方的ip位址和埠號,就可以直接發資料報。但是,能不能到達就不知道了。雖然用udp傳輸資料不可靠,但它的優點是和tcp比,速度快,對於不要求可靠到達的資料...

VC SOCKET 程式設計小示例

server.cpp 定義控制台應用程式的入口點。include stdafx.h include include define true 1 define false 0 define buf max lenth 1024 pragma comment lib,wsock32.lib int ma...