udp 發送和接收



import socket


def main():
    # 創建一個udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    while True:

        # 從鍵盤獲取數據
        send_data = input("請輸入要發送的數據:")

        # 如果輸入的數據是exit,那麼就退出程序
        if send_data == "exit":
            break

        # 可以使用套接字收發數據
        # udp_socket.sendto("hahahah", 對方的ip以及port)
        # udp_socket.sendto(b"hahahah------1----", ("192.168.33.53", 8080))
        udp_socket.sendto(send_data.encode("utf-8"), ("192.168.0.155", 7788))

    # 關閉套接字
    udp_socket.close()


if __name__ == "__main__":
    main()

import socket

def main():
    # 1. 創建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2. 綁定一個本地信息
    localaddr = ("192.168.0.155", 7788)
    udp_socket.bind(localaddr)  # 必須綁定自己電腦的ip以及port,其他的不行

    # 3. 接收數據
    while True:
        recv_data = udp_socket.recvfrom(1024)
        # recv_data這個變量中存儲的是一個元組(接收到的數據,(發送方的ip, port))
        recv_msg = recv_data[0]  # 存儲接收的數據
        send_addr = recv_data[1]  # 存儲發送方的地址信息
        # 4. 打印接收到的數據
        # print(recv_data)
        # print("%s:%s" % (str(send_addr), recv_msg.decode("utf-8")))
        print("%s:%s" % (str(send_addr), recv_msg.decode("gbk")))
    # 5. 關閉套接字
    udp_socket.close()

if __name__ == "__main__":
    main()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章