【发布时间】:2014-01-04 06:35:09
【问题描述】:
我正在使用SO_RCVTIMEO 将套接字的超时设置为 10 秒。这个问题特定于流套接字(TCP)。当我从手册页中收集到的信息中调用 recv(...) 时,这就是我所期待的:
- 如果远程关闭连接,无论超时,它都会立即返回 0。
- 如果超时到期并且没有接收到数据,那么我们会返回 -1 和
EAGAIN或EWOULDBLOCK中的errno。 - 如果套接字发生错误,它会立即返回 -1,然后正确设置
errno。 - 如果数据可用,则套接字会等待直到发生超时,然后再返回。这次它将在 10 秒内返回接收到的总字节数。
这是正确的行为吗?我只是想确保我正确理解文档。
谢谢! 布雷特
【问题讨论】: