多线程编程中Socket编程的问题(一)
网上介绍Python Socket编程的很多,我也曾写了个例子。但是这些大多是单线程的,而且也是阻塞式的操作。
这有什么问题呢?就是当你在执行socketObj.recv(1024) 时,如果没有接收到数据,那么它将持续等待直到超时。
在多线程编程的情况下,你就会发现,程序总是在等待接收数据,而其他应该完成的操作却没有动,
在这样的情况下,建立Socket的时候加上socketObj.setblocking(0),就可以编程非阻塞式的监听端口了。[……]