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基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
Python简单读取json文件功能示例
Nov 30 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
python输出决策树图形的例子
Aug 09 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
django列表筛选功能的实现代码
Mar 27 Python
Restful_framework视图组件代码实例解析
Nov 17 Python
详解Python中的文件操作
Jan 14 Python
pandas map(),apply(),applymap()区别解析
Feb 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
python删除文件示例分享
2014/01/28 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
如何对python的字典进行排序
2020/06/19 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
小班重阳节活动方案
2014/02/08 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
铣工实训报告
2014/11/05 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
2014年英语工作总结
2014/12/20 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书