WORD wVersionRequested;
WSADATA wsaData;
int ret;
SOCKADDR_IN sockAddr; ret = WSAStartup(0x0202,&wsaData);
if(ret!=0)
{
AfxMessageBox("error when wsastartup");
return false;
} if(wsaData.wVersion!=0x0202)
{
AfxMessageBox("error when wsastartup");
return false;
}
sockAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(60023); this->socketSrv = socket(AF_INET,SOCK_STREAM,0);
if(this->socketSrv==INVALID_SOCKET)
{
AfxMessageBox("error when create socket");
closesocket(this->socketSrv);
WSACleanup();
return false;
}
    
if(bind(this->socketSrv,(SOCKADDR*)&sockAddr,sizeof(sockAddr))==SOCKET_ERROR)
{
AfxMessageBox("error when bind");
closesocket(this->socketSrv);
WSACleanup();
return false;
} if(SOCKET_ERROR == WSAAsyncSelect(this->socketSrv,this->m_hWnd,WM_SOCKMESSAGE,FD_ACCEPT|FD_CLOSE))
{
AfxMessageBox("error when register network event");
closesocket(this->socketSrv);
WSACleanup();
return false;
} if(listen(this->socketSrv,5)==SOCKET_ERROR)
{
AfxMessageBox("error when listening");
closesocket(this->socketSrv);
WSACleanup();
return false;
}
SOCKET sockSrv = (SOCKET)param;
SOCKADDR_IN sockAddr;
int len = sizeof(SOCKADDR_IN ); if(sockSrv==INVALID_SOCKET)
{
AfxMessageBox("error when accept");
return false;
}
while(1)
{
SOCKET connSocket = accept(sockSrv,(SOCKADDR*)&sockAddr,&len);
if(connSocket==INVALID_SOCKET)
{
AfxMessageBox("error when accept socket");
closesocket(connSocket);
}
         
....... }我的代码是象上面那样写的我发现在启动服务器的时候总是不停的弹出error when accept socket
就是在这个地方
SOCKET connSocket = accept(sockSrv,(SOCKADDR*)&sockAddr,&len);
if(connSocket==INVALID_SOCKET)
{
AfxMessageBox("error when accept socket");
closesocket(connSocket);
}我发现把
if(SOCKET_ERROR == WSAAsyncSelect(this->socketSrv,this->m_hWnd,WM_SOCKMESSAGE,FD_ACCEPT|FD_CLOSE))
{
AfxMessageBox("error when register network event");
closesocket(this->socketSrv);
WSACleanup();
return false;
}这段代码去掉后又不会弹出这样的窗口请问是什么问题啊