socketserver实现并发

Posted ipython-201806

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socketserver实现并发相关的知识,希望对你有一定的参考价值。

一、socketserver

    基于tcp,使用socketserver,可以实现一个服务端与多个客户端通信。

  • 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环
  • socketserver模块中分为两大类:server类(解决链接问题)和request类(解决通信问题)

完整的socketserver代码示例:

服务端:

技术分享图片
import socketserver


class Myserver(socketserver.BaseRequestHandler):

    def handle(self):
        while 1:
            from_client_msg = self.request.recv(1024)
            print(from_client_msg.decode("utf-8"))
            server_msg = input("服务端>>>")
            self.request.send(server_msg.encode("utf-8"))


if __name__ == __main__:
    ip_port = ("127.0.0.1", 8001)
    server = socketserver.ThreadingTCPServer(ip_port, Myserver)
    server.serve_forever()
server端

客户端:

技术分享图片
import socket


client = socket.socket()
client.connect(("127.0.0.1", 8001))

while 1:
    client_data = input("客户端>>>")
    client.send(client_data.encode("utf-8"))

    from_server_msg = client.recv(1024)
    print(from_server_msg.decode("utf-8"))
client端

    此时即可在一个服务端下,运行多次客户端程序,实现同时与服务端通信。

二、socketserver源码分析

 

以上是关于socketserver实现并发的主要内容,如果未能解决你的问题,请参考以下文章

socketserver模块(实现并发)

socketserver实现并发

socketserver实现并发

python,利用socketserver模块实现并发聊天

基于socketserver实现并发

Python之路 - Socketserver实现多并发