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()
多線程實現UDP聊天器簡易版python
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.