资源暂时不可用,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的主要内容,如果未能解决你的问题,请参考以下文章