请教:连接超时设置
红心地瓜 2005-02-23 11:07:33 struct linger Lin;
Lin.l_linger = 500;//设置连接超时0.5秒
Lin.l_onoff = 1;
//连接超时
if(setsockopt(*Sock,SOL_SOCKET,SO_LINGER,(const char*)&Lin,sizeof(Lin))==SOCKET_ERROR)
{
return 0;
}
TimeOut=6000; //设置发送超时6秒
if(::setsockopt(*Sock,SOL_SOCKET,SO_SNDTIMEO,(char *)&TimeOut,sizeof(TimeOut))==SOCKET_ERROR){
ULONG32 j=WSAGetLastError();
AfxMessageBox("设置发送超时不成功!");
}
//接收超时
if(::setsockopt(*Sock,SOL_SOCKET,SO_RCVTIMEO,(char *)&TimeOut,sizeof(TimeOut))==SOCKET_ERROR){
ULONG32 j=WSAGetLastError();
AfxMessageBox("设置接收超时不成功!");
}
用这些代码设置超时,但是运行起来发现,连接的时候,如果连不上,返回wouldblock,很长时间以后,并不给我close,不知道怎么回事,哪位大侠指点一下
不胜感激