bool CSockTestDlg::InitNetwork()
{
WSADATA wsaData;
int ret = WSAStartup(MAKEWORD(2,2), &wsaData);    if(ret != 0)//bool可以返回0?
{
MessageBox("初始化网络协议失败!","错误");
return false;
}    // 创建服务器端套接字
    ClntSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(ClntSock == INVALID_SOCKET)
{
MessageBox("创建套接字失败!","错误");
closesocket(ClntSock);
WSACleanup();
return false;
}    sockaddr_in ClntAddr;//地址对象
ClntAddr.sin_family = AF_INET;
ClntAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
ClntAddr.sin_port = htons(8888); if(WSAAsyncSelect(ClntSock,m_hWnd,NETWORK_EVENT,FD_CLOSE|FD_READ|FD_WRITE|FD_CONNECT) == SOCKET_ERROR)
{
//MessageBox("注册事件失败!","失败");
WSACleanup();
return false;
}
if(connect(ClntSock,(SOCKADDR*)&ClntAddr,sizeof(ClntAddr)) == SOCKET_ERROR) 
{
CString aa;
aa.Format("%d",WSAGetLastError());
//WSACleanup();
    MessageBox(aa,"失败");
    //return false;
}
/*   
int bytesSent;
    int bytesRecv = SOCKET_ERROR;
    char sendbuf[32] = "Client: Sending data.";
    char recvbuf[32] = "";
    bytesSent = send( ClntSock, sendbuf, strlen(sendbuf), 0 );
    printf( "Bytes Sent: %ld\n", bytesSent );    while( bytesRecv == SOCKET_ERROR ) {
      bytesRecv = recv( ClntSock, recvbuf, 32, 0 );
      if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET ) {
        MessageBox("连接关闭!","错误");
        break;
  }
}    WSACleanup();*/    return true;
}
void CSockTestDlg::OnNetEvent(WPARAM wParam, LPARAM lParam)
{
//调用Winsock API函数,得到网络事件类型
int iEvent = WSAGETSELECTEVENT(lParam);
//调用Winsock API函数,得到发生此事件的客户端套接字
SOCKET CurSock= (SOCKET)wParam;
    int error =0;
    switch(iEvent)
{
case FD_CLOSE://客户端断开事件
OnClose(CurSock);
break;
case FD_READ://网络数据包到达事件
OnReceive(CurSock);
break;
case FD_WRITE://发送网络数据事件
OnSend(CurSock);
break;
case FD_CONNECT://连接成功后响应
OnConnect(CurSock,error);
break;
default: break;
}
}
在调用CONNECT的时候总是报错误 可是服务器SOCKET的onaccept事件可以接收到这它的连接 这是什么问题呢?SERVER:
void CDlgMain::OnAccept(SOCKET CurSock)
{
MessageBox("连接请求!");
/*
SOCKET AcceptSocket;
    AcceptSocket = SOCKET_ERROR;
    while( AcceptSocket == SOCKET_ERROR ) 
{
        AcceptSocket = accept(ServerSock, NULL, NULL );
    }
    ServerSock = AcceptSocket;*/    SOCKET server;
    sockaddr_in from;
    int fromlen=sizeof(from);
    accept(server,(struct sockaddr*)&from,&fromlen);
}