Python語言實現UDP協議實現網絡與進程間通信

關於UDP協議,實際是不怎麼用的,總歸是個知識點!
每臺計算機都有自己的本地消息循環網卡,地址統一爲127.0.0.1,利用這個在下方實現局域網內部消息收發的時候,將發送方IP修改爲自己的IP或者是127.0.0.1,即可實現本地接收!
下方是代碼!

注意:沒有加入多線程,因此程序必須遵守一次性收發!可自行更改!

from socket import *


def recv_message(udp_socket):
    """消息接收函數"""
    msg, opposite_addr = udp_socket.recvfrom(1024)
    print(msg.decode("utf-8"))  # 解碼打印
    print("%s:%d" % (opposite_addr[0], opposite_addr[1]))  # 多此一舉,既然定義了就用了


def send_message(udp_socket):
    """消息發送函數"""
    # 鍵盤獲取內容轉爲GBK格式,UTF-8在windows此處不適用
    udp_socket.sendto(input("Send Content:").encode("gbk"), ("192.168.31.190", 8080))


def main_page():
    """功能選擇頁面"""
    print("Option Function:")
    print("1.Send Message")
    print("2.Receive Message")
    print("0.EXIT")


def main():
    udp_socket = socket(AF_INET, SOCK_DGRAM)  # 創建套接字
    udp_socket.bind(("", 8088))  # 綁定IP與端口

    # 循環頁面
    while True:
        main_page()
        opt = int(input("Option:"))
        if opt == 1:
            send_message(udp_socket)
        elif opt == 2:
            recv_message(udp_socket)
        elif opt == 0:
            break
        else:
            print("Input Error!")

    # 關閉套接字
    udp_socket.close()


if __name__ == '__main__':
    main()

實驗圖:在這裏插入圖片描述
需要注意的是網絡調試助手有的不支持127.0.0.1,程序接收不到,這是助手的bug,可以自行開啓一個接收一個發送進行測試!

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