做一个TCP的程序,将套接字设为非阻塞的后,一有连接,服务器就断了
不知道我做的对不对?
if(SOCKET_ERROR == WSAAsyncSelect(winsrv.sockSrv,hwnd,WM_SOCKET_NOTIFY,FD_ACCEPT))
{
MessageBox(hwnd,TEXT("注册网络事件处理失败!"),TEXT("错误"),MB_OK | MB_ICONERROR);
SendMessage(hwnd,WM_DESTROY,0,0);
}然后在消息里是:
case WM_SOCKET_NOTIFY:switch(LOWORD(lParam))
{
case FD_ACCEPT:
if(HIWORD(lParam))
{
    MessageBox(hwnd,"错误","",0);
    closesocket(winsrv.sockSrv);
    WSACleanup();
    SendMessage(hwnd,WM_CREATE,0,0);
}
else
{
    recv(winsrv.sockConn,winsrv.recvBuf,20,0);
    closesocket(winsrv.sockConn);
    SendMessage(hwnd,WM_WAIT_CONN,0,0);
}
break;
}
return 0;