![发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”,第1张 发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”,第1张](/aiimages/%E5%8F%91%E9%80%81%E5%9B%BE%E5%83%8F%E6%97%B6%EF%BC%8CPython%E9%94%99%E8%AF%AF%EF%BC%9A%E2%80%9C+socket.error%EF%BC%9A%5BErrno+11%5D%E8%B5%84%E6%BA%90%E6%9A%82%E6%97%B6%E4%B8%8D%E5%8F%AF%E7%94%A8%E2%80%9D.png)
在服务器中,您正在将远程套接字(由返回的套接字
accept())设置为非阻塞模式,这意味着该套接字上的I /
O将在没有数据读取的情况下立即因异常而终止。
与服务器建立连接与客户端发送图像数据之间通常会有一段时间。一旦连接被接受,服务器将尝试立即从客户端读取数据,但是,可能尚无任何数据要读取,因此
c.recv()引发了
socket.error:[Errno 11] Resource temporarily unavailable异常。Errno
11对应于
EWOULDBLOCK,因此
recv()中止,因为没有可供读取的数据。
您的代码似乎不需要非阻塞套接字,因为
accept()while循环的顶部有一个,因此一次只能处理一个连接。您只需删除对的呼叫即可
c.setblocking(0)解决此问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)