|
wince下的确不支持SO_SNDLOWAT,SO_RCVLOWAT发送接收超时。
但可以通过select设置超时,以下是发送超时的例子:
int rtn = 0, len = 0;
fd_set fds = {0};
struct timeval ti = { 3, 0}; /* 超时时间3s */
FD_ZERO(&fds);
FD_SET(s, &fds);
rtn = select(s + 1, NULL, &fds, NULL, &ti);
if(rtn>0)
{
if(FD_ISSET(s, &fds))
{
len = send(s, buff, size, 0);
}
}
else
{
fprintf(stderr, "socket error: %d\r\n", WSAGetLastError());
return SOCKET_ERROR;
}
|
|