在服务器中,您正在将远程套接字(由返回的套接字
accept())设置为非阻塞模式,这意味着该套接字上的I /
O将在没有数据读取的情况下立即因异常而终止。
与服务器建立连接与客户端发送图像数据之间通常会有一段时间。一旦连接被接受,服务器将尝试立即从客户端读取数据,但是,可能尚无任何数据要读取,因此
c.recv()引发了
socket.error:[Errno 11] Resource temporarily unavailable异常。Errno
11对应于
EWOULDBLOCK,因此
recv()中止,因为没有可供读取的数据。
您的代码似乎不需要非阻塞套接字,因为
accept()while循环的顶部有一个,因此一次只能处理一个连接。您只需删除对的呼叫即可
c.setblocking(0)解决此问题。


![发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用” 发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”](http://www.mshxw.com/aiimages/31/660007.png)
