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 02 Python
在Python中实现贪婪排名算法的教程
Apr 17 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python3中函数参数传递方式实例详解
May 05 Python
在python中用url_for构造URL的方法
Jul 25 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python办公自动化之Excel(中)
May 24 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 Python
Python使用openpyxl批量处理数据
Jun 23 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
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
详解python之配置日志的几种方式
2017/05/22 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Python如何读写CSV文件
2020/08/13 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
个人安全承诺书
2014/05/22 职场文书
综艺节目策划方案
2014/06/13 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python