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()