当前位置: 技术问答>linux和unix
Socket通信中怎样探测对方网络已经出错?
来源: 互联网 发布时间:2015-09-05
本文导语: 我写了个LINUX下的SOCKET通信C程序,客户端程序用了一个WHILE循环,但是如果服务器程序出错的话,客户程序仍然循环,我想让客户程序能检测出对方已经出错,请问该怎么做,谢谢。在线等待! | ...
我写了个LINUX下的SOCKET通信C程序,客户端程序用了一个WHILE循环,但是如果服务器程序出错的话,客户程序仍然循环,我想让客户程序能检测出对方已经出错,请问该怎么做,谢谢。在线等待!
|
建议select后检查recv返回值
以下是我处理的错误类型,供参考:
int XGSKTcpRead(__XGSOCKET *pXgSocket,char Buf[],int Len,int Flag)
{
int rlen;
if((pXgSocket->OpenState==XGSOCKET_STATE_CLOSED)||(pXgSocket->OpenState==XGSOCKET_STATE_READ_CLOSED))
return XGSOCKET_CALLERROR;
if(LenLocalPort);
#endif
return XGSOCKET_CALLERROR;
}
rlen=recv(pXgSocket->LocalSocket,Buf,Len,Flag);
if(rlen
以下是我处理的错误类型,供参考:
int XGSKTcpRead(__XGSOCKET *pXgSocket,char Buf[],int Len,int Flag)
{
int rlen;
if((pXgSocket->OpenState==XGSOCKET_STATE_CLOSED)||(pXgSocket->OpenState==XGSOCKET_STATE_READ_CLOSED))
return XGSOCKET_CALLERROR;
if(LenLocalPort);
#endif
return XGSOCKET_CALLERROR;
}
rlen=recv(pXgSocket->LocalSocket,Buf,Len,Flag);
if(rlen