如题,先谢谢了。
我的传送接受函数如下,我需要在传送后,如果超过三十秒直接返回错误,并短开连接,怎么处理?BOOL Send_Receive_Packet(SOCKET& hSocket,char *Sendbuffer, char *Recv)
{
int nPacket = 0;
int nRet;
char szSend[sizeof(CC_Transaction_Request)];
char szRecv[sizeof(CC_Transaction_Response)];
unsigned long nTotalSend,nTotalRecv;
unsigned int nSent = 0;
unsigned int nRecv = 0; memcpy((BYTE*)szSend,Sendbuffer,sizeof(CC_Transaction_Request));

nTotalSend= sizeof(CC_Transaction_Request);
nTotalRecv= sizeof(CC_Transaction_Response);
while(nSent < nTotalSend)
{
nRet = send(hSocket, szSend + nSent, nTotalSend - nSent, 0);
if(nRet == SOCKET_ERROR || nRet == 0 || nRet==-1 )
{
closesocket(hSocket);
hSocket = INVALID_SOCKET;
return FALSE ;
}
nSent += nRet;
}
while(TRUE)
{
nRet = recv(hSocket, szRecv + nRecv, nTotalRecv - nRecv, 0);
if(nRet == SOCKET_ERROR || nRet == 0 || nRet==-1)
{
closesocket(hSocket);
hSocket = INVALID_SOCKET;
return FALSE ;
}
nRecv += nRet;
if(nRecv < sizeof(CC_Transaction_Response))
continue;
else
break;
}
memcpy(Recv,szRecv,nRecv);
return TRUE;
}