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中Collection的使用小技巧
Aug 18 Python
python之wxPython菜单使用详解
Sep 28 Python
python操作redis的方法
Jul 07 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
python常用函数与用法示例
Jul 02 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
python求平均数、方差、中位数的例子
Aug 22 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python 实现图像快速替换某种颜色
Jun 04 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 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
php4的彩蛋
2006/10/09 PHP
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
JavaScript中String.prototype用法实例
2015/05/20 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
python脚本内运行linux命令的方法
2015/07/02 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
Python常见工厂函数用法示例
2018/03/21 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
工程技术员岗位职责
2014/03/02 职场文书
2014年教学工作总结
2014/11/13 职场文书
客户付款通知书
2015/04/23 职场文书
小学语文教学随笔
2015/08/14 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python