2011-10-20
setsockopt函数在Windows和Linux下设置参数的区别
Linux:
struct timeval tv = {3, 0};//3s
int ret = setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
int ret = setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
//ret == 0 OK, ret == -1 fail
int recvd = recv(sock_fd, buf, 1024, 0);
if (recvd == -1 && errno == EAGAIN)
{
printf("timeout\n");
}
Windows:
int timeout = 3000; //3s
int ret = setsockopt(sock_fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
int ret = setsockopt(sock_fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));