udp客戶端收發數據流程


1、創建客戶端socket開始進行通訊。
2、這時服務端應該先啟動,並在知道服務端的ip以及端口號的時候才能進行通訊。
3、本地不需要綁定ip以及端口號,在用此套接字對象發送消息的時候會自動分配活動端口(1024-65535)
每次重啟程序可能每次都不一樣。
4、然后對將要發送的信息進行編碼處理,然后將編碼后的字節碼發送到指定服務端ip以及端口。
5、這里還可以進行消息的接收,在這里接收消息首先得要發送數據到指定的服務端,告訴服務端客戶端的ip以及所使用的端口是什么。
6、如果先進行消息阻塞是收不到消息的,這里客戶端不需要綁定端口可以理解成在客戶端把數據發送到服務端以后系統在后台默默地
把客戶端ip以及端口和客戶端綁定了起來。這樣服務端發送的消息就能被客戶端所接收。
7、接受到消息同樣要進行解碼,解碼形式與服務端發送過來數據的編碼格式相對應,把字節碼轉換成能看懂的數據進行打印。
8、最后進行客戶端udp套接字關閉。
from socket import *
# 客戶端

# 定義客戶端udp套接字
socket_udp = socket(AF_INET, SOCK_DGRAM)
# 確定目標ip以及端口,這里是服務端在局域網內的ip地址以及服務端綁定的端口號
dest_addr = (' 這里填寫服務端ipv4地址   ', 8989)

while True:
    # 輸入發送數據
    temp_data = input('客戶端:')
    # 加上具體對象形成對話形式
    temp_data = '客戶端:' + temp_data
    # 對將要發送的數據進行編碼,目標地址使用的什么編碼去解碼接收,則在這里使用什么編碼去進行編碼
    socket_data = temp_data.encode('gbk')
    # 調用套接字里udp發送數據的函數sendto()
    socket_udp.sendto(socket_data, dest_addr)
    # 准備接收數據,接收長度為1024
    temp_recv_data = socket_udp.recvfrom(1024)
    # 對接收到的數據進行解碼
    socket_udp_recv_data = temp_recv_data[0].decode('gbk')
    # # 對接收到的消息進行打印
    # print(socket_udp_recv_data, '\n對方發送數據所使用的端口號是:', temp_recv_data[1][1])
    # 對接收到的消息進行打印
    print(socket_udp_recv_data)
# 發送完畢,關閉udp套接字、
# socket_udp.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM