【发布时间】: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。换句话说,系统不会恢复。这是插座本身、插座上的设置还是设备的问题?
【问题讨论】: