python udp客户端 服务器实现方式_python3实现UDP协议的简单服务器和客户端
利用python中的socket模塊中的來實(shí)現(xiàn)UDP協(xié)議,這里寫一個(gè)簡單的服務(wù)器和客戶端。為了說明網(wǎng)絡(luò)編程中UDP的應(yīng)用,這里就不寫圖形化了,在兩臺(tái)電腦上分別打開UDP的客戶端和服務(wù)端就可以了。
UDP:用戶數(shù)據(jù)報(bào)協(xié)議,是一個(gè)面向無連接的協(xié)議。采用該協(xié)議不需要兩個(gè)應(yīng)用程序先建立連接。UDP協(xié)議不提供差錯(cuò)恢復(fù),不能提供數(shù)據(jù)重傳,因此該協(xié)議傳輸數(shù)據(jù)安全性差。
客戶端
python3只能收發(fā)二進(jìn)制數(shù)據(jù),需要顯式轉(zhuǎn)碼
from socket import *
host = '192.168.48.128' # 這是客戶端的電腦的ip
port = 13141 #接口選擇大于10000的,避免沖突
bufsize = 1024 #定義緩沖大小
addr = (host,port) # 元祖形式
udpClient = socket(AF_INET,SOCK_DGRAM) #創(chuàng)建客戶端
while True:
data = input('>>> ')
if not data:
break
data = data.encode(encoding="utf-8")
udpClient.sendto(data,addr) # 發(fā)送數(shù)據(jù)
data,addr = udpClient.recvfrom(bufsize) #接收數(shù)據(jù)和返回地址
print(data.decode(encoding="utf-8"),'from',addr)
udpClient.close()
服務(wù)器
同樣需要顯式轉(zhuǎn)碼
from socket import *
from time import ctime
host = '' #監(jiān)聽所有的ip
port = 13141 #接口必須一致
bufsize = 1024
addr = (host,port)
udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #開始監(jiān)聽
while True:
print('Waiting for connection...')
data,addr = udpServer.recvfrom(bufsize) #接收數(shù)據(jù)和返回地址
#處理數(shù)據(jù)
data = data.decode(encoding='utf-8').upper()
data = "at %s :%s"%(ctime(),data)
udpServer.sendto(data.encode(encoding='utf-8'),addr)
#發(fā)送數(shù)據(jù)
print('...recevied from and return to :',addr)
udpServer.close()
總結(jié)
以上是生活随笔為你收集整理的python udp客户端 服务器实现方式_python3实现UDP协议的简单服务器和客户端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星 Galaxy S23 Ultra
- 下一篇: python爬取歌曲评论_python