首页 > Python教程 > 正文

python中协程实现TCP连接的代码示例

转载 2018-10-13 16:49:44 0 842
本篇文章给大家带来的内容是关于python中协程实现TCP连接的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在网络通信中,每个连接都必须创建新线程(或进程) 来处理,否则,单线程在处理连接的过程中, 无法接受其他客户端的连接。所以我们尝试使用协程来实现服务器对多个客户端的响应。
与单一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连接的代码示例的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:python
  • 本文转载于:segmentfault思否,如有侵犯,请联系删除
  • 相关文章


  • PHP协程实现多任务合作
  • python协程用法实例分析
  • Python协程、IO多路复用的方法
  • PHP使用协程实现多任务调度方法实例
  • python协程的详细讲解(附示例)
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    相关视频教程

  • Python 基础入门教程 Python 基础入门教程
  • Python 3 教程 Python 3 教程
  • 极客学院Python视频教程 极客学院Python视频教程
  • Python在数据科学中的应用 Python在数据科学中的应用
  • Python 面向对象视频教程 Python 面向对象视频教程
  • 相关视频章节