Python啟動UDP服務(wù),監(jiān)聽并接收客戶端數(shù)據(jù)方式
Python啟動UDP服務(wù),監(jiān)聽并接收客戶端數(shù)據(jù)
可以使用Python的socket庫實(shí)現(xiàn)UDP協(xié)議的驗(yàn)證,以下是一個簡單的示例代碼:
服務(wù)器
[root@localhost python]# cat udp_server.py
import socket
# 創(chuàng)建一個UDP socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 綁定到本地 IP 和端口
local_addr = ('192.168.6.211', 8888)
udp_socket.bind(local_addr)
print('UDP server is listening...')
while True:
# 接收數(shù)據(jù)
data, addr = udp_socket.recvfrom(1024)
print(f'Received data from {addr}: {data.decode()}')
# 回復(fù)數(shù)據(jù)
reply = 'Received: ' + data.decode()
udp_socket.sendto(reply.encode(), addr)
[root@localhost python]#客戶端
[root@localhost python]# cat udp_server.py
import socket
# 創(chuàng)建一個UDP socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 發(fā)送數(shù)據(jù)
remote_addr = ('192.168.6.211', 8888)
udp_socket.sendto('Hello, UDP!'.encode(), remote_addr)
# 接收數(shù)據(jù)
data, addr = udp_socket.recvfrom(1024)
print(f'Received data from {addr}: {data.decode()}')
# 關(guān)閉 socket
udp_socket.close()
[root@localhost python]#以上代碼創(chuàng)建了一個UDP socket,并綁定到本地的IP和端口8888。
接著使用recvfrom()方法接收數(shù)據(jù),并使用sendto()方法發(fā)送數(shù)據(jù)。最后,關(guān)閉socket。
可以使用兩個終端分別運(yùn)行該程序,并觀察數(shù)據(jù)的傳輸情況,從而驗(yàn)證UDP協(xié)議的可靠性。



總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決virtualenv -p python3 venv報錯的問題
這篇文章主要介紹了解決virtualenv -p python3 venv報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
python實(shí)現(xiàn)汽車管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)汽車管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11
Matplotlib之解決plt.savefig()保存多張圖片有重疊的問題
這篇文章主要介紹了Matplotlib之解決plt.savefig()保存多張圖片有重疊的問題,具有很好的參考價值,希望對大家有所幫助,2023-09-09
Python超有趣實(shí)例通過冒泡排序來實(shí)現(xiàn)LOL厄斐琉斯控槍
冒泡排序是一種簡單的排序算法,它也是一種穩(wěn)定排序算法。其實(shí)現(xiàn)原理是重復(fù)掃描待排序序列,并比較每一對相鄰的元素,當(dāng)該對元素順序不正確時進(jìn)行交換。一直重復(fù)這個過程,直到?jīng)]有任何兩個相鄰元素可以交換,就表明完成了排序2022-05-05

