我正在尝试创建一个可以处理多个连接的简单回显服务器,我正在使用select并需要使用非阻塞套接字,但是我收到一条错误消息,提示“ BlockingIOError:[Errno 35]资源暂时不可用”我在哪里接收数据。
这是服务器和客户端代码
inputs = [server]
while True:
inready, outready, excready = select.select(inputs, [], [])
for s in inready:
if s == server:
client, address = server.accept()
client.setblocking(0)
print(address)
inready.append(client)
else:
data = s.recv(1024);
if data:
s.send(data)
else:
inputs.remove(s)
s.close()
答案 0 :(得分:0)
这个小错误也花了我一段时间:
inready.append(client)
当然是正确的:
inputs.append(client)
由于inready
被意外修改,因此else
块本不应该被执行。