请教,vc 中设置 recv 超时 不准?
我写一小段代码在线程中 测试recv超时是否可用时发现系统最少有500ms 的超时。
int nNetTimeoutRX = 1;
recv_tick = GetTickCount();
setsockopt( sckLink, SOL_SOCKET, SO_RCVTIMEO, ( char * )&nNetTimeoutRX, sizeof( int ) );
iResult = recv(sckLink,(char *)&RecvHead,Head_Len,0);
PRPrint(M_PRINT_TYPE_NORMAL,L"time is %dms.",GetTickCount() - recv_tick);
结果测试如下:
[14:11:11 # 3] 已连接系统!
[14:11:12 # 4] time is 530ms.
[14:11:12 # 5] 连接已被终止(-1)
nNetTimeoutRX 改成 1000时
[14:12:29 # 3] 已连接系统!
[14:12:30 # 4] time is 1529ms.
[14:12:30 # 5] 连接已被终止(-1)
这是为什么啊? 还需要对哪里进行设置?谢谢各位