我必须收听传入的连接,但同时我必须从已连接的客户端收到消息。但是listen(1)
使套接字等待,所以我无法接收它们。该怎么办? (我必须在客户端发送消息后立即收到消息)
答案 0 :(得分:1)
简而言之,您有3个主要选项:
在每个客户端打开一个线程,在accept()
之后生成,并在此上下文中运行一个循环,read() => .... => write()
在每个select()
之后运行一个在客户端上使用accept()
的主循环,并自行处理调度。
最佳选择 - 使用异常网络框架,例如tornado
,gevent
,twisted
或其他一些,以便透明地处理此问题。