资源暂时不可用,UDP socket

Posted

技术标签:

【中文标题】资源暂时不可用,UDP socket【英文标题】:Resource temporarily unavailable, UDP socket 【发布时间】:2019-07-11 19:27:29 【问题描述】:

我正在通过 UDP 套接字与设备通信。我发送一个命令,然后收到它的响应。消息需要每 100 毫秒发送一次。我用

设置接收超时
struct timeval t = .tv_sec = 0, .tv_usec = 100000;
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, t, sizeof(t));

fd 是我的套接字文件描述符。很长一段时间内一切正常,但随后我在recvfrom(...) 调用中开始收到Resource temporarily unavailable 错误。据我了解,这是因为接收缓冲区中没有任何内容。我希望在下一次迭代中缓冲区已满,但我仍然收到Resource temporarily unavailable。换句话说,系统不会恢复。这是插座本身、插座上的设置还是设备的问题?

【问题讨论】:

【参考方案1】:

如果您最初获得流量,则套接字或其配置应该没有问题。如果是这种情况,您会看到不同的错误消息。

如果您连续只遇到一次或两次该消息,则可能是由于某些网络问题导致网络延迟或丢包。 (例如开关故障、网络连接速度慢等)

如果您一直遇到该消息(每次调用 recvfrom 时),则客户端和服务器之间的连接可能存在问题。我会验证客户端是否仍在发送消息并检查您的网络连接。

【讨论】:

以上是关于资源暂时不可用,UDP socket的主要内容,如果未能解决你的问题,请参考以下文章

使用 uwsgi + nginx 资源暂时不可用

资源暂时不可用

ubuntu安装时出现11:资源暂时不可用

警告:unlink() 资源暂时不可用

接受错误:资源暂时不可用

markdown fork:retry:资源暂时不可用