在Python中發(fā)送UDP數(shù)據(jù)包的方法步驟
今天,我們將學習用戶數(shù)據(jù)報協(xié)議(UDP),并了解如何使用 Python 編程發(fā)送 UDP 數(shù)據(jù)包。
在Python中發(fā)送UDP數(shù)據(jù)包
用戶數(shù)據(jù)報協(xié)議 (UDP) 和 TCP/IP 的運行方式不同。 UDP 是一種面向消息的協(xié)議,與 TCP 不同,TCP 是一種面向流的協(xié)議,可確保所有數(shù)據(jù)都按正確的順序傳輸。
設置 UDP 套接字要容易一些,因為 UDP 不需要持續(xù)很長時間的連接。 另一方面,與 TCP 不同,UDP 消息的傳遞并不確定,并且它們必須適合單個數(shù)據(jù)包。
我們怎樣才能用 Python 做到這一點呢? Python 有一個名為 socket 的內置模塊,您必須導入該模塊。
import socket
一旦我們導入了套接字模塊,我們必須聲明我們將嘗試發(fā)送 UDP 消息的端口號和 IP 地址。
IP = "127.0.0.1" PORT = 5003 Message = "Info"
現(xiàn)在我們已經(jīng)聲明了這幾個變量,現(xiàn)在是時候構建套接字了,我們將通過該套接字將 UDP 消息發(fā)送到服務器。
Sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) Sock.sendto(Message, (IP,PORT))
您必須創(chuàng)建兩個文件; 客戶端.py 和服務器.py。 客戶端和服務器文件必須位于相應的服務器和客戶端系統(tǒng)中。
創(chuàng)建客戶端程序后,下一步就是創(chuàng)建服務器程序,該程序將監(jiān)視指定 IP 地址和端口號的任何 UDP 數(shù)據(jù)包。
請注意,客戶端 Python 腳本必須在此服務器之前執(zhí)行,否則客戶端 Python 腳本將失敗。
一旦我們導入了套接字模塊并提供了 IP 地址和端口號,我們就可以創(chuàng)建另一個套接字,該套接字將與我們在客戶端應用程序中創(chuàng)建的套接字完全相同。
Server.py 文件的示例代碼:
import socket
IP = "127.0.0.1"
PORT = 5003
MESSAGE= "The meeting is From 10 pm."
print(f"sending information")
print(f"{MESSAGE} to {IP}:{PORT}")
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.sendto(MESSAGE.encode(), (IP, PORT))
輸出:
sending information The meeting is From 10 pm. to 127.0.0.1:5003
您還應該編寫代碼來維護您的腳本不斷偵聽此連接,直到構建服務器套接字后它終止。
它采用簡單的 while 循環(huán)的形式,如下所示:
Client.py 文件的示例代碼:
import socket
IP = "127.0.0.1"
PORT = 5003
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.bind((IP, PORT))
print(f"start listening to {IP}:{PORT}")
while True:
data, addr = sock.recvfrom(1024)
print(f"received message: {data}")
輸出:
start listening to 127.0.0.1:5003 received message: The meeting is From 10 pm.
這樣我們就可以在Python中發(fā)送UDP數(shù)據(jù)包了。
到此這篇關于在Python中發(fā)送UDP數(shù)據(jù)包的方法步驟的文章就介紹到這了,更多相關Python發(fā)送UDP數(shù)據(jù)包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python3爬蟲教程之利用Python實現(xiàn)發(fā)送天氣預報郵件
這篇文章主要給大家介紹了關于Python3爬蟲教程之利用Python實現(xiàn)發(fā)送天氣預報郵件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-12-12
python實現(xiàn)m3u8格式轉換為mp4視頻格式
這篇文章主要為大家詳細介紹了python實現(xiàn)m3u8格式轉換為mp4視頻格式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
pandas使用QGraphicsView自動排列項目的實現(xiàn)
本文主要介紹了pandas使用QGraphicsView自動排列項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-04-04
Python Web靜態(tài)服務器非堵塞模式實現(xiàn)方法示例
這篇文章主要介紹了Python Web靜態(tài)服務器非堵塞模式實現(xiàn)方法,結合實例形式分析了Python單進程非堵塞模式實現(xiàn)的Web靜態(tài)服務器相關操作技巧,需要的朋友可以參考下2019-11-11

