python實現的多任務版udp聊天器功能案例
更新時間:2019年11月13日 11:39:39 作者:小飛俠v科比
這篇文章主要介紹了python實現的多任務版udp聊天器功能,結合具體案例形式分析了Python基于udp的聊天器功能相關實現與使用技巧,需要的朋友可以參考下
本文實例講述了python實現的多任務版udp聊天器。分享給大家供大家參考,具體如下:
說明
編寫一個有2個線程的程序
線程1用來接收數據然后顯示
線程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()
更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
關于Qt6中QtMultimedia多媒體模塊的重大改變分析
如果您一直在 Qt 5 中使用 Qt Multimedia,則需要對您的實現進行更改。這篇博文將嘗試引導您完成最大的變化,同時查看 API 和內部結構2021-09-09Python利用PyQt5制作一個獲取網絡實時NBA數據并播報的GUI程序
現在NBA聯賽也進行到半決賽了,我們怎么樣才能以更快的方法獲取NBA的數據呢?這里我們就自己來做一個數據播報的程序,需要的朋友可以參考下2021-06-06python高手之路python處理excel文件(方法匯總)
用python來自動生成excel數據文件。python處理excel文件主要是第三方模塊庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模塊2016-01-01