python3實現UDP協議的簡單伺服器和客戶端

2021-08-02 13:17:19 字數 1598 閱讀 3149

利用python中的socket模組中的來實現udp協議,這裡寫乙個簡單的伺服器和客戶端。為了說明網路程式設計中udp的應用,這裡就不寫圖形化了,在兩台電腦上分別開啟udp的客戶端和服務端就可以了。

udp:使用者資料報協議,是乙個面向無連線的協議。採用該協議不需要兩個應用程式先建立連線。udp協議不提供差錯恢復,不能提供資料重傳,因此該協議傳輸資料安全性差。

客戶端

python3只能收發二進位制資料,需要顯式轉碼

from socket import *

host = '192.168.48.128' # 這是客戶端的電腦的ip

port = 13141 #介面選擇大於10000的,避免衝突

bufsize = 1024 #定義緩衝大小

addr = (host,port) # 元祖形式

udpclient = socket(af_inet,sock_dgram) #建立客戶端

while true:

data = input('>>> ')

if not data:

break

data = data.encode(encoding="utf-8")

udpclient.sendto(data,addr) # 傳送資料

data,addr = udpclient.recvfrom(bufsize) #接收資料和返回位址

print(data.decode(encoding="utf-8"),'from',addr)

udpclient.close()

伺服器

同樣需要顯式轉碼

from socket import *

from time import ctime

host = '' #監聽所有的ip

port = 13141 #介面必須一致

bufsize = 1024

addr = (host,port)

udpserver = socket(af_inet,sock_dgram)

udpserver.bind(addr) #開始監聽

while true:

print('waiting for connection...')

data,addr = udpserver.recvfrom(bufsize) #接收資料和返回位址

#處理資料

data = data.decode(encoding='utf-8').upper()

data = "at %s :%s"%(ctime(),data)

udpserver.sendto(data.encode(encoding='utf-8'),addr)

#傳送資料

print('...recevied from and return to :',addr)

udpserver.close()

csdn位址 : 

也可以致信進行交流 : [email protected]

python3實現UDP協議的簡單伺服器和客戶端

利用python中的socket模組中的來實現udp協議,這裡寫乙個簡單的伺服器和客戶端。為了說明網路程式設計中udp的應用,這裡就不寫圖形化了,在兩台電腦上分別開啟udp的客戶端和服務端就可以了。udp 使用者資料報協議,是乙個面向無連線的協議。採用該協議不需要兩個應用程式先建立連線。udp協議不...

python3實現CryptoJS AES加密演算法

from crypto.cipher import aes from binascii import b2a hex,a2b hex import base64 class aescrypt def init self,key self.key key.encode utf8 self.mode a...

python3通過udp實現組播資料的傳送和接收

本文主要通過對海康攝像頭進行抓包,模擬傳送了udp包,並抓取攝像頭返回的資料報,解析並提取相關資訊。通過抓包發現,海康攝像頭傳送 接收資料使用udp協議,後來比較發現,使用python模擬起來比較簡單。由於攝像頭內建了udp協議的server端程式,本文主要使用python模擬客戶端傳送udp資料報...