Python實現多任務版的udp聊天器
發(fā)布日期:2022-02-22 15:21 | 文章來源:源碼之家
本文實例為大家分享了Python實現多任務版的udp聊天器,供大家參考,具體內容如下
一、案例示例

二、案例說明
1、編寫一個有2個線程的程序。
2、線程1用來接收數據然后顯示。
3、線程2用來檢測鍵盤數據然后通過udp發(fā)送數據。
三、參考代碼
import socket
import threading
def send_msg(udp_socket):
"""獲取鍵盤數據,并將其發(fā)送給對方"""
while True:
# 1. 從鍵盤輸入數據
msg = input("\n請輸入要發(fā)送的數據:")
# 2. 輸入對方的ip地址
dest_ip = input("\n請輸入對方的ip地址:")
# 3. 輸入對方的port
dest_port = int(input("\n請輸入對方的port:"))
# 4. 發(fā)送數據
udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(udp_socket):
"""接收數據并顯示"""
while True:
# 1. 接收數據
recv_msg = udp_socket.recvfrom(1024)
# 2. 解碼
recv_ip = recv_msg[1]
recv_msg = recv_msg[0].decode("utf-8")
# 3. 顯示接收到的數據
print(">>>%s:%s" % (str(recv_ip), recv_msg))
def main():
# 1. 創(chuàng)建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2. 綁定本地信息
udp_socket.bind(("", 7890))
# 3. 創(chuàng)建一個子線程用來接收數據
t = threading.Thread(target=recv_msg, args=(udp_socket,))
t.start()
# 4. 讓主線程用來檢測鍵盤數據并且發(fā)送
send_msg(udp_socket)
if __name__ == "__main__":
main()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。
相關文章
下一篇:
關注官方微信