udp套接字收發數據


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')進行轉碼

 

 
        

 





免責聲明!

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



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