python使用多線程編寫tcp客戶端程序
今天在網(wǎng)上找了半天,發(fā)現(xiàn)很多關(guān)于此題目的程序都只能接收數(shù)據(jù),所以隨便找了個程序研究了一下,然后做出一些修改
代碼如下:
from socket import * import threading tcp_socket = socket(AF_INET, SOCK_STREAM) tcp_socket.connect(('192.168.1.102', 8080)) true = True def rece_msg(tcp_socket): global true while true: recv_msg = tcp_socket.recv(1024).decode("utf8") if recv_msg == "exit": true = False print('接收到的信息為:%s' % recv_msg) def send_msg(tcp_socket): global true while true: send_msg = input('請輸入要發(fā)送的內(nèi)容') tcp_socket.send(send_msg.encode('utf-8')) if send_msg == "exit": true = False def main(): while True: print('*'*50) print('1 發(fā)送消息\n2 接收消息') option = int(input('請選擇操作內(nèi)容')) print('*'*50) if option == 1: threading.Thread(target=send_msg, args=(tcp_socket,)).start() elif option == 2: threading.Thread(target=rece_msg, args=(tcp_socket,)).start() else: print('輸入有誤') break if __name__ == '__main__': main()
該代碼只能實現(xiàn)要么一直發(fā)送,要么一直接收
運行如圖
發(fā)送數(shù)據(jù)時截圖
接收數(shù)據(jù)時截圖
為解決只能單方發(fā)送和接收問題,現(xiàn)將代碼修改如下
from socket import * import threading tcp_socket = socket(AF_INET, SOCK_STREAM) tcp_socket.connect(('192.168.1.102', 8080)) true = True def rece_msg(tcp_socket): global true while true: recv_msg = tcp_socket.recv(1024).decode("utf8") if recv_msg == "exit": true = False print('接收到的信息為:%s\n' % recv_msg) def send_msg(tcp_socket): global true while true: send_msg = input('請輸入要發(fā)送的內(nèi)容\n') tcp_socket.send(send_msg.encode('utf-8')) if send_msg == "exit": true = False threading.Thread(target=send_msg, args=(tcp_socket,)).start() threading.Thread(target=rece_msg, args=(tcp_socket,)).start()
運行結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Python3 socket即時通訊腳本實現(xiàn)代碼實例(threading多線程)
- python使用多線程+socket實現(xiàn)端口掃描
- 解決python ThreadPoolExecutor 線程池中的異常捕獲問題
- 解決python多線程報錯:AttributeError: Can''t pickle local object問題
- python實現(xiàn)自動化報表功能(Oracle/plsql/Excel/多線程)
- python多線程實現(xiàn)TCP服務(wù)端
- Python實現(xiàn)多線程/多進程的TCP服務(wù)器
- Python3多線程版TCP端口掃描器
- python單線程下實現(xiàn)多個socket并發(fā)過程詳解
- 詳解C語言和Python中的線程混用
相關(guān)文章
Python將列表中的元素轉(zhuǎn)化為數(shù)字并排序的示例
今天小編就為大家分享一篇Python將列表中的元素轉(zhuǎn)化為數(shù)字并排序的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12基于Python實現(xiàn)一個春節(jié)倒計時腳本
春節(jié)即將到來,本文將為大家介紹一個通過Python實現(xiàn)的春節(jié)倒計時腳本,文中的示例代碼簡潔易懂,感興趣的小伙伴可以自己動手嘗試一下2022-01-01Python實現(xiàn)RGB與HSI顏色空間的互換方式
今天小編就為大家分享一篇Python實現(xiàn)RGB與HSI顏色空間的互換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python WXPY實現(xiàn)微信監(jiān)控報警功能的代碼
本篇文章主要介紹了Python WXPY實現(xiàn)微信監(jiān)控報警功能的代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10探索Python元類與class語句協(xié)議掌握類的控制權(quán)
這篇文章主要介紹了通過Python元類與class語句協(xié)議掌握類的控制權(quán)探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01