23,121
社区成员
发帖
与我相关
我的任务
分享
HMSDATACORE_CLIENT *pSt_Client = new HMSDATACORE_CLIENT;
if (NULL == pSt_Client)
{
return FALSE;
}
memset(pSt_Client,'\0',sizeof(HMSDATACORE_CLIENT));
pSt_Client->pClass_This = this;
pSt_Client->bIsConnect = FALSE;
pSt_Client->bHBRun = FALSE;
pSt_Client->hSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (INVALID_SOCKET == pSt_Client->hSocket)
{
return FALSE;
}
struct sockaddr_in st_SockServiceAddr;
st_SockServiceAddr.sin_addr.s_addr = inet_addr(lpszServiceAddr);
st_SockServiceAddr.sin_port = htons(nPort);
st_SockServiceAddr.sin_family = AF_INET;
unsigned long ulFin = 1;
if (SOCKET_ERROR == ioctl(pSt_Client->hSocket, FIONBIO, (unsigned long*)&ulFin))
{
return FALSE;
}
connect(pSt_Client->hSocket,(sockaddr *)&st_SockServiceAddr,sizeof(st_SockServiceAddr))
struct timeval st_Timeout;
fd_set st_SetRead;
fd_set st_SetWrite;
FD_ZERO(&st_SetRead);
FD_ZERO(&st_SetWrite);
FD_SET(pSt_Client->hSocket, &st_SetRead);
FD_SET(pSt_Client->hSocket, &st_SetWrite);
st_Timeout.tv_sec = 6;
st_Timeout.tv_usec = 0;
int nRet = select(pSt_Client->hSocket, &st_SetRead, &st_SetWrite, NULL, &st_Timeout);
if (nRet <= 0)
{
return FALSE;
}
if(!FD_ISSET(pSt_Client->hSocket, &st_SetWrite))
{
return FALSE;
}
}
ulFin = 0;
if (SOCKET_ERROR == ioctl(pSt_Client->hSocket, FIONBIO, (unsigned long*)&ulFin))
{
return FALSE;
}