【发布时间】:2017-03-30 21:29:00
【问题描述】:
如何连接多个客户端?与多个客户端连接后,我如何从每个客户端接收单独的数据?据我所知,我需要使用一种叫做“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()
主机类
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()
【问题讨论】:
-
你的意思是异步吗? docs.python.org/3/library/asyncio.html asyncore 已被 asyncio 替换 注意此模块的存在仅用于向后兼容。对于新代码,我们建议使用 asyncio。