python使用多线程编写tcp客户端程序


Posted in Python onSeptember 02, 2019

今天在网上找了半天,发现很多关于此题目的程序都只能接收数据,所以随便找了个程序研究了一下,然后做出一些修改

代码如下:

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('请输入要发送的内容')
  tcp_socket.send(send_msg.encode('utf-8'))
  if send_msg == "exit":
   true = False


def main():
 while True:
  print('*'*50)
  print('1 发送消息\n2 接收消息')
  option = int(input('请选择操作内容'))
  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()

该代码只能实现要么一直发送,要么一直接收

运行如图

发送数据时截图

 python使用多线程编写tcp客户端程序

python使用多线程编写tcp客户端程序

接收数据时截图

 python使用多线程编写tcp客户端程序

python使用多线程编写tcp客户端程序

为解决只能单方发送和接收问题,现将代码修改如下

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('请输入要发送的内容\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()

运行结果

python使用多线程编写tcp客户端程序

python使用多线程编写tcp客户端程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现提取百度搜索结果的方法
May 19 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Python时间的精准正则匹配方法分析
Aug 17 Python
Python实现购物车程序
Apr 16 Python
python实现比较文件内容异同
Jun 22 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 Python
使用python实现离散时间傅里叶变换的方法
Sep 02 #Python
详解Python图像处理库Pillow常用使用方法
Sep 02 #Python
Django使用中间件解决前后端同源策略问题
Sep 02 #Python
python elasticsearch环境搭建详解
Sep 02 #Python
关于pymysql模块的使用以及代码详解
Sep 01 #Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 #Python
Python 使用多属性来进行排序
Sep 01 #Python
You might like
PHP return语句的另一个作用
2014/07/30 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
详解Python map函数及Python map()函数的用法
2017/11/16 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python虚拟环境迁移方法
2019/01/03 Python
django-allauth入门学习和使用详解
2019/07/03 Python
对python中的装包与解包实例详解
2019/08/24 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
python实现翻译word表格小程序
2020/02/27 Python
Python列表推导式实现代码实例
2020/09/09 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
股权转让协议书范本
2014/04/12 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
开平碉楼导游词
2015/02/06 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
女儿满月酒致辞
2015/07/29 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python