- 论坛徽章:
- 0
|
代码如下:- int main() {
- int sock = socket(AF_INET, SOCK_STREAM, 0);
- struct timeval timeout = {3, 0};
- if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(struct timeval)) < 0 ||
- setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval)) < 0)
- {
- fprintf(stderr, "failed to setsockopt!\n");
- return -1;
- }
- struct timeval t_timeout;
- unsigned int t_len;
- if ( getsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char*)&t_timeout, &t_len) == 0 )
- {
- printf("SO_RCVTIMEO --> tv_sec: %ld \n", t_timeout.tv_sec);
- printf("SO_RCVTIMEO --> t_len: %d \n", t_len);
- }
- if ( getsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char*)&t_timeout, &t_len) == 0 )
- {
- printf("SO_SNDTIMEO --> tv_sec: %ld \n", t_timeout.tv_sec);
- printf("SO_SNDTIMEO --> t_len: %d \n", t_len);
- }
- return 0;
- }
复制代码 返回值:
O_RCVTIMEO --> tv_sec: 0
SO_RCVTIMEO --> t_len: 0
SO_SNDTIMEO --> tv_sec: 0
SO_SNDTIMEO --> t_len: 0
貌似设置没有成功。。。 不知道问题出在哪里,请高手指教~多谢! |
|