udp套接字收發資料

2022-06-08 12:45:15 字數 1498 閱讀 3652

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資料資訊:

def

udpsend():

#建立套接字

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接收資料:

def

udpget():

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

print

(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 實現 不發起三次握手 僅將服...