• 技术文章 >后端开发 >Python教程

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

    不言不言2018-10-13 16:49:44转载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中文网其它相关文章!

    声明:本文转载于:segmentfault思否,如有侵犯,请联系admin@php.cn删除
    专题推荐:python
    上一篇:python中socket实现UDP通信的介绍(附示例) 下一篇:Python要学哪些内容?Python程序员学习路线图
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• PHP协程实现多任务合作• python协程用法实例分析• Python协程、IO多路复用的方法• PHP使用协程实现多任务调度方法实例• python协程的详细讲解(附示例)
    1/1

    PHP中文网