【发布时间】:2021-10-16 16:00:37
【问题描述】:
我设法为 C 套接字设置了 read 超时:
struct timeval tv_read;
tv_read.tv_sec = 2;
tv_read.tv_usec = 0;
setsockopt(my_socket, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv_read, sizeof tv_read);
现在,我想为send 操作设置相同的套接字超时。我在setsockopt 中发现为send 设置超时的正确方法非常相似,只需将SO_RCVTIMEO 替换为SO_SNDTIMEO:
struct timeval tv_write;
tv_write.tv_sec = 4;
tv_write.tv_usec = 0;
setsockopt(my_socket, SOL_SOCKET, SO_SNDTIMEO, (const char*)&tv_write, sizeof tv_write);
我的问题是setsockopt 的连续调用是否会覆盖前一个调用?或者我应该两次调用SO_RCVTIMEO 和其他SO_SNDTIMEO,如上所示?
【问题讨论】:
-
多次调用 setsockopt 是很常见的。