if(m_Socket==INVALID_SOCKET){
sprintf(szTmp,"Failed to create a new socket!,error no:%d",::WSAGetLastError());
::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);
::WSACleanup();
return;
}
//bind socket
struct sockaddr_in client;
unsigned long nClient;
memcpy(&nClient,he->h_addr_list[0],sizeof(int));
if(nClient==INADDR_NONE){
sprintf(szTmp,"Failed to obtain the local machine's IP!","Error",MB_OK+MB_ICONERROR);
::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);
closesocket(m_Socket);
::WSACleanup();
return;
}
client.sin_family=AF_INET;
client.sin_port=0;
client.sin_addr.S_un.S_addr=(int)nClient;
if(bind(m_Socket,(struct sockaddr*)&client,sizeof(struct sockaddr))){
sprintf(szTmp,"Failed to bind socket!","Error",MB_OK+MB_ICONERROR);
closesocket(m_Socket);
::WSACleanup();
return;}
//connect socket
struct sockaddr_in To;
To.sin_family=AF_INET;
To.sin_port=htons(m_Port);
To.sin_addr.S_un.S_addr=(int)nAddr;
fd_set FDSET;
FD_ZERO(&FDSET);
FD_SET(m_Socket,&FDSET);
if(m_Protocol==TCP){
if(connect(m_Socket,(struct sockaddr*)&To,sizeof(struct sockaddr))){
sprintf(szTmp,"Failed to connect the object!,error no:%d",::WSAGetLastError());
::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);
closesocket(m_Socket);
::WSACleanup();
return;
}
责任编辑:小草