TIMEVAL tv01 = {0, 1};//1ms钟延迟,实际为9-10毫秒
int nSelectRet;
int nErrorCode;
while(1) {
FD_SET fdw = {1, sListen};
nSelectRet=::select(0, NULL, NULL,&fdw, &tv01);//检查可写状态 if(SOCKET_ERROR==nSelectRet)
{
nErrorCode=WSAGetLastError();
TRACE("select write status errorcode=%d",nErrorCode);
//::closesocket(sConnect);
//goto 重新连接(客户方),或服务线程退出(服务方);
break;
}
if(nSelectRet==0) //超时发生,缓冲满或网络忙
{
//继续查写状态或查读状态
continue;
}
else
{
//发送
sn=send(s,buf,len,flags);
break;
}
}我的代码如上,为什么一运行就是无法到发送那里呢?
rt,如果已满那么我如何删除缓冲区
int nSelectRet;
int nErrorCode;
while(1) {
FD_SET fdw = {1, sListen};
nSelectRet=::select(0, NULL, NULL,&fdw, &tv01);//检查可写状态 if(SOCKET_ERROR==nSelectRet)
{
nErrorCode=WSAGetLastError();
TRACE("select write status errorcode=%d",nErrorCode);
//::closesocket(sConnect);
//goto 重新连接(客户方),或服务线程退出(服务方);
break;
}
if(nSelectRet==0) //超时发生,缓冲满或网络忙
{
//继续查写状态或查读状态
continue;
}
else
{
//发送
sn=send(s,buf,len,flags);
break;
}
}我的代码如上,为什么一运行就是无法到发送那里呢?
rt,如果已满那么我如何删除缓冲区
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货