异步套接字

JGe*_*kis 5 python sockets

如何与多个客户端连接?与多个客户端连接后,我如何从每个客户端接收单独的数据?据我所知,我需要使用名为“Asyncore”的东西。我该如何实施?

客户类别

import socket
class Client():
    def __init__(self):
        self.host = 'localhost'
        self.port = 5000

        self.s = socket.socket()
        self.s.connect((self.host, self.port))
        self.s.send(str.encode(input("What is your name ")))

x = Client()
Run Code Online (Sandbox Code Playgroud)

主机班

import socket
class Host():
    def __init__(self):
        self.host = 'localhost'
        self.port = 5000

        self.s = socket.socket()
        self.s.bind((self.host, self.port))
        self.s.listen(5)
        self.c, self.addr = self.s.accept()
        print("User from " + str(self.addr) + " has connected")
        while True:
            data = self.c.recv(1024)
            if not data:
                break

            print(str(self.addr) +" name is " + data.decode("utf-8"))
            #c.send(str.encode(whatever))
        self.c.close()

x = Host()
Run Code Online (Sandbox Code Playgroud)

Osc*_*alo 2

您在找这个吗?asyncore

这是您可以找到与异步套接字处理程序相关的所有信息的链接

https://docs.python.org/2/library/asyncore.html

编辑:dano 评论也很棒

享受