18,356
社区成员
发帖
与我相关
我的任务
分享
WSADATA WSAData;
int nRc = WSAStartup( MAKEWORD( 2, 2 ), &WSAData );
for(int i=0; i<SocketNum; i++)
{
DWORD dwip;
SOCKADDR_IN sockStruct; // Socket 结构
if((dwip = inet_addr(strIpList[i])) == INADDR_NONE) // Ip地址转换
{
// 表示Socket 的 IP 地址格式不正确,不是xxx.xxx.xxx.xxx格式
continue;
}
socketList[i] = socket(AF_INET, SOCK_STREAM, 0); // 创建TCP socket
sockStruct.sin_family=AF_INET;
sockStruct.sin_port=htons(SocketPort[i]); // Socket 端口
sockStruct.sin_addr.S_un.S_addr = dwip; // Socket IP
if(connect(socketList[i], (LPSOCKADDR)&sockStruct,sizeof(sockStruct)) == SOCKET_ERROR) // 连接Socket
{
int err = WSAGetLastError();
socketConStatus[i] = err;
continue;
}
else
{
SocketConnNum++;
socketConStatus[i] = 0;
}
if(WSAAsyncSelect(socketList[i], m_hWnd, WM_SOCKETEVENT,
FD_READ | FD_WRITE | FD_CLOSE) == SOCKET_ERROR)
{
// 表示注册网络异步事件失败
WSACleanup();
continue;
}
}
void SOCKET_OnSend(SOCKET CurSock);
void SOCKET_OnReceive(SOCKET CurSock);
void SOCKET_OnClose(SOCKET CurSock);