python中协程实现TCP连接的实例分析


Posted in Python onOctober 14, 2018

在网络通信中,每个连接都必须创建新线程(或进程) 来处理,否则,单线程在处理连接的过程中, 无法接受其他客户端的连接。所以我们尝试使用协程来实现服务器对多个客户端的响应。

与单一TCP通信的构架一样,只是使用协程来实现多个任务同时进行。

#服务端

import socket

from gevent import monkey

import gevent

monkey.patch_all()

def handle_conn(seObj):

  while True:

    re_Data = seObj.recv(1024).decode('utf-8')

    if re_Data == 'quit':

      break

    print('client>>',re_Data)

    value = input("server>>")

    se_Data = seObj.send(value.encode('utf-8'))

    if se_Data == 'quit':

      break

if __name__ == '__main__':

  server = socket.socket()

  server.bind(('192.168.1.227',9876))

  print("服务已开启")

  server.listen(4)

  while True:

    seObj,add = server.accept()

    gevent.spawn(handle_conn,seObj)

  seObj.close()

  server.close()
import socket

 

# 1. 创建客户端的socket对象

client = socket.socket()

# 2. 连接服务端, 需要指定端口和IP

client.connect(('192.168.1.227',9876))

while True:

  # 3. 给服务端发送数据

  send_data = input("client:>")

  client.send(send_data.encode('utf-8'))

  if send_data == 'quit':

    break

  # 4. 获取服务端返回的消息

  recv_data = client.recv(1024).decode('utf-8')

  if recv_data == 'quit':

    break

  print("server:>%s" %(recv_data))

# 5. 关闭socket连接

client.close()

以上就是python中协程实现TCP连接的代码示例的详细内容,感谢大家对三水点靠木的支持。

Python 相关文章推荐
Python 数据结构之旋转链表
Feb 25 Python
python算法演练_One Rule 算法(详解)
May 17 Python
python生成随机图形验证码详解
Nov 08 Python
Python 查看文件的编码格式方法
Dec 21 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
pytorch 实现在测试的时候启用dropout
May 27 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
解决python "No module named pip" 的问题
Oct 13 #Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 #Python
python机器学习之神经网络实现
Oct 13 #Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 #Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 #Python
解决PyCharm import torch包失败的问题
Oct 13 #Python
python3+requests接口自动化session操作方法
Oct 13 #Python
You might like
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
在Python中使用SQLite的简单教程
2015/04/29 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
办公室主任职责范文
2013/11/08 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python