擅长:python、mysql、java
<p>问题是recv()调用会阻塞,直到接收到一些数据,而recv()正在阻塞时,程序不会检查stdin是否有任何输入。传统的单线程解决方案是将套接字设置为非阻塞I/O(通过Encon.setblocking公司(False)),然后将程序块放在select()中。将EncCon和stdin都传递给select()(作为其read socket set参数的一部分),这样select()将在其中任何一个有数据要提供给您时返回。(请注意,此方法在Windows下不起作用,因为Windows不允许select()阻塞stdin:P)</p>