udp傳送資料注意點:
s = socket.socket(socket.af_inet,socket.sock_dgram)
1、初始化socket 兩個引數 第乙個 ip/1v4協議 第二個是tcp還是udp協議
socket.sock_dgram----udp協議 socket.sock_stream-----tcp協議2傳送的資料為bytes型別,記得轉型, ip+埠是tuple型別
udp_socket.sendto(send_data.encode("utf-8"), ("192.168.20.143", 8080))迴圈傳送udp資料資訊:
defudpsend():
#建立套接字
udp_socket =socket.socket(socket.af_inet, socket.sock_dgram)
#繫結埠,傳送資料時會從繫結的埠傳送,不會再生成隨機埠
udp_socket.bind(("", 8080))
#使用套接字進行資料傳輸
while
true:
send_data = input("
請輸入傳輸的資料")
#(內容,位址》元組)
udp_socket.sendto(send_data.encode("
utf-8
"), ("
ip位址
", 8080))
if send_data == "
exit":
break
#關閉套接字
udp_socket.close()
總結:步驟和之前呼叫模組差不多:1、初始化udp/tcp套接字 2、使用套接字收發資料 3、關閉套接字
udp接收資料:
defudpget():
"""1、建立套接字
2、繫結乙個本地資訊
3、接收資料
4、列印接收資料
5、關閉套接字
:return:none
"""s =socket.socket(socket.af_inet,socket.sock_dgram)
loacl_addr = ("",7878)
s.bind(loacl_addr)
while
true:
recv_data = s.recvfrom(1024)
(recv_data,tuple(recv_data))
if recv_data[0].decode('
gbk') == "
exit":
break
s.close()
接收的資料為元祖型別 其中接收的data為bytes型別,需要decode('gbk')進行轉碼
UDP套接字程式設計
與面向連線的協議相比,面向無連線協議極為不同。其中乙個重要的不同點就是客戶端與伺服器之間不必建立連線。對於udp套接字程式設計而言,伺服器建立套接字後,呼叫bind 函式將套接字與準備接收資料的介面繫結在一起。和tcp程式設計不同的是,應用程式不必呼叫listen 和accept 函式等待客戶端的連...
UDP套接字程式設計
udp是使用者資料報協議,與tcp協議一樣,在網路中處理資料報,是一種無連線的傳輸層協議,具有不可靠性,udp有不提供資料報分組 組裝和不能對資料報進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完整到達的。基於udp的客戶端伺服器 伺服器 include include includ...
關於udp套接字
setsockopt so reuseaddr 同一終端先後兩次執行udp server,該選項無影響。兩個 或多個 終端同時執行udp server,配置該選項時,僅第乙個終端執行成功 不配置時,所有終端均可成功執行udp server。udp客戶端呼叫connect 實現 不發起三次握手 僅將服...