Python實(shí)現(xiàn)多任務(wù)版的udp聊天器
本文實(shí)例為大家分享了Python實(shí)現(xiàn)多任務(wù)版的udp聊天器,供大家參考,具體內(nèi)容如下
一、案例示例
二、案例說(shuō)明
1、編寫一個(gè)有2個(gè)線程的程序。
2、線程1用來(lái)接收數(shù)據(jù)然后顯示。
3、線程2用來(lái)檢測(cè)鍵盤數(shù)據(jù)然后通過(guò)udp發(fā)送數(shù)據(jù)。
三、參考代碼
import socket import threading def send_msg(udp_socket): """獲取鍵盤數(shù)據(jù),并將其發(fā)送給對(duì)方""" while True: # 1. 從鍵盤輸入數(shù)據(jù) msg = input("\n請(qǐng)輸入要發(fā)送的數(shù)據(jù):") # 2. 輸入對(duì)方的ip地址 dest_ip = input("\n請(qǐng)輸入對(duì)方的ip地址:") # 3. 輸入對(duì)方的port dest_port = int(input("\n請(qǐng)輸入對(duì)方的port:")) # 4. 發(fā)送數(shù)據(jù) udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port)) def recv_msg(udp_socket): """接收數(shù)據(jù)并顯示""" while True: # 1. 接收數(shù)據(jù) recv_msg = udp_socket.recvfrom(1024) # 2. 解碼 recv_ip = recv_msg[1] recv_msg = recv_msg[0].decode("utf-8") # 3. 顯示接收到的數(shù)據(jù) 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)建一個(gè)子線程用來(lái)接收數(shù)據(jù) t = threading.Thread(target=recv_msg, args=(udp_socket,)) t.start() # 4. 讓主線程用來(lái)檢測(cè)鍵盤數(shù)據(jù)并且發(fā)送 send_msg(udp_socket) if __name__ == "__main__": main()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作示例
這篇文章主要介紹了Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作,結(jié)合實(shí)例形式分析了Python引入ftp模塊及相關(guān)設(shè)置、文件傳輸?shù)炔僮骷记?需要的朋友可以參考下2018-04-04對(duì)Python中type打開(kāi)文件的方式介紹
下面小編就為大家介紹一下對(duì)Python中type打開(kāi)文件的方式。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Numpy?數(shù)據(jù)處理?ndarray使用詳解
這篇文章主要為大家介紹了Numpy?數(shù)據(jù)處理?ndarray使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08python通過(guò)裝飾器檢查函數(shù)參數(shù)數(shù)據(jù)類型的方法
這篇文章主要介紹了python通過(guò)裝飾器檢查函數(shù)參數(shù)數(shù)據(jù)類型的方法,涉及Python裝飾器的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)中篇
這篇文章主要介紹了Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)中篇,本文章內(nèi)容詳細(xì),通過(guò)案例可以更好的理解爬蟲(chóng)的相關(guān)知識(shí),七個(gè)例子分為了三部分,本次為中篇,共有二道題,需要的朋友可以參考下2023-01-01詳解Python如何巧妙實(shí)現(xiàn)數(shù)學(xué)階乘n!
一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!,本文就給大家介紹如何使用python和第三方庫(kù)來(lái)實(shí)現(xiàn)數(shù)學(xué)運(yùn)算中的階乘以及階乘累計(jì)求和2023-03-03Python scipy實(shí)現(xiàn)差分進(jìn)化算法
差分進(jìn)化算法是廣義的遺傳算法的一種,核心思想是變異,這篇文章主要為大家介紹的則是著名的scipy庫(kù)中對(duì)差分進(jìn)化算法的實(shí)現(xiàn),希望對(duì)大家有所幫助2023-08-08python-pymysql如何實(shí)現(xiàn)更新mysql表中任意字段數(shù)據(jù)
這篇文章主要介紹了python-pymysql如何實(shí)現(xiàn)更新mysql表中任意字段數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05python實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06