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实现的各种排序算法代码
Mar 04 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
跟老齐学Python之大话题小函数(2)
Oct 10 Python
Python自动生产表情包
Mar 17 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
Python StringIO如何在内存中读写str
Jan 07 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
Python 数据可视化之Bokeh详解
Nov 02 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
PHP基于单例模式实现的mysql类
2016/01/09 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
js中数组排序sort方法的原理分析
2014/11/20 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
python协程用法实例分析
2015/06/04 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
python开启debug模式的方法
2019/06/27 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
最新党员的自我评价分享
2013/11/04 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
辞职离别感言
2015/08/04 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
详解Python中*args和**kwargs的使用
2022/04/07 Python