python网络聊天器多线程版
生活随笔
收集整理的這篇文章主要介紹了
python网络聊天器多线程版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在之前的一篇文章(python網絡編程-udp)中實現了一個簡單的udp聊天器,只能在單線程下進行收發數據,在學習完多線程之后,實現一個能同時收發數據的udp聊天器。
說明:
- 編寫一個有2個線程的程序
- 線程1用來接收數據然后顯示
- 線程2用來檢測鍵盤數據然后通過udp發送數據
要求:
示例程序:
import socket import threadingdef 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))def recv_msg(udp_socket):"""接收消息"""while True:recv_data = udp_socket.recvfrom(1024)recv_ip = recv_data[1]recv_msg = recv_data[0].decode("utf-8")print("\n>>%s:%s" % (recv_ip, recv_msg))def main():# 創建套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 綁定本地端口udp_socket.bind(("", 8888))# 輸入對方的ip和地址dest_ip = input("請輸入對方的ip:")dest_port = int(input("請輸入對方的port:"))t1 = threading.Thread(target=send_msg, args=(udp_socket, dest_ip, dest_port))t1.start()t2 = threading.Thread(target=recv_msg, args=(udp_socket,))t2.start()if __name__ == "__main__":main()終端運行結果:
$ python3 聊天器-多線程版.py 請輸入對方的ip:192.168.92.130 請輸入對方的port:8080 請輸入要發送的信息:hello 請輸入要發送的信息: >>('192.168.92.130', 8080):666網絡調試助手的結果:
程序運行過程解析:
- 首先創建套接字,并綁定到本地的端口8888
- 輸入要進行聊天的對方的ip和端口信息
- 啟動兩個線程,一個線程用于發送數據,一個線程用于接收數據
轉載于:https://www.cnblogs.com/zhangfengxian/p/python-chat-threading.html
總結
以上是生活随笔為你收集整理的python网络聊天器多线程版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多多视频如何看历史记录
- 下一篇: 电脑怎样找到宽带连接(电脑上如何找到宽带