多線程實現UDP聊天器簡易版python

import socket
import threading
import time

"""
使用多線程技術編寫的udp收發消息的程序代碼
多線程實現UDP聊天器簡易版
"""


def recv_msg(udp_socket):
    # 接收數據
    while True:
        recv_data = udp_socket.recvfrom(1024)
        print("接收到數據:", recv_data)


def send_msg(udp_socket, dest_ip, dest_port):
    # 發送數據
    while True:
        send_data = input("請輸入要發送的數據:")
        udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))
        # 讓ta休息一會兒
        time.sleep(1)


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

    # 綁定信息
    udp_socket.bind(("", 9988))

    # 獲取對方的ip和port
    dest_ip = input("請輸入對方的ip:")
    dest_port = int(input("請輸入對方的port:"))

    # 創建兩個線程 去執行發送 和 接收 這兩個任務
    t_recv = threading.Thread(target=recv_msg, args=(udp_socket,))  # 加一個逗號  這是元組
    t_send = threading.Thread(target=send_msg, args=(udp_socket, dest_ip, dest_port))

    t_recv.start()

    t_send.start()


if __name__ == '__main__':
    main()

在這裏插入圖片描述

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