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实现的数据结构与算法之快速排序详解
Apr 22 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
python使用RNN实现文本分类
May 24 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
django的settings中设置中文支持的实现
Apr 28 Python
Python创建或生成列表的操作方法
Jun 19 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
django的model操作汇整详解
Jul 26 Python
Python实现图片添加文字
Nov 26 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 Python
在python中读取和写入CSV文件详情
Jun 28 Python
Python  序列化反序列化和异常处理的问题小结
Dec 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 cli模式下获取参数的方法
2017/05/05 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
如何开发出更好的JavaScript模块
2017/12/22 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
法律进学校实施方案
2014/03/15 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
社区务虚会发言材料
2014/10/20 职场文书
党风廉正建设责任书
2015/01/29 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS