我正在创建一个套接字并使用它来与python进程通信。
我以这种方式创建套接字,因为我已经有了一个文件描述符:
sock = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
如果我收到很多请求,它会暂时无法提供[Errno 11]资源。
当消息不适合套接字的发送缓冲区时, send()通常会阻塞,除非插入了套接字 非阻塞I / O模式。在非阻塞模式下,它会因错误而失败 在这种情况下,EAGAIN或EWOULDBLOCK。 select(2)调用可用于 确定何时可以发送更多数据。
然后看起来它处于非阻塞I / O模式,并且它引发了EAGAIN错误。
所以我把它设置为阻止:
sock.setblocking(1)
但我一直有同样的错误。 socket.fromfd文档也说:
假设套接字处于阻塞模式
答案 0 :(得分:-4)
首先,我不知道“python进程”是什么。流程是一个过程。什么语言写的东西,或解释者可能解释的东西,与任何事情无关。
接下来,我不确定“我以这种方式创建套接字,因为我已经有了文件描述符”的意思。我没有看到你创建任何东西,而是将一些值从一个结构赋值给另一个变量。
不知道你如何原封不动地实例化 socket ,无法猜出资源问题可能是什么。