if(bind(server_socket,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR)
{
ShowMessage("服务器套接字绑定失败");
WSACleanup();
return 0;
}
ShowMessage("服务器套接字绑定成功");
WSAAsyncSelect(server_socket,Form1->Handle,WM_SOCKET,FD_ACCEPT|FD_READ|FD_WRITE|FD_CLOSE);
------解决方案--------------------
- C/C++ code
WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return; } char hostname[256]; gethostname(hostname,sizeof(hostname)); HOSTENT*hos=gethostbyname(hostname); String CS=inet_ntoa(*(struct in_addr*)hos->h_addr_list[0]); SOCKET serverSocket; serverSocket = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addr; addr.sin_family = AF_INET; addr.sin_port = htons(6000); addr.sin_addr.S_un.S_addr = inet_addr(CS); bind(serverSocket, (SOCKADDR*)&addr, sizeof(SOCKADDR)); //注册网络事件 if(SOCKET_ERROR == WSAAsyncSelect(serverSocket, m_hWnd, WM_NETMESSAGE, FD_ACCEPT|FD_CLOSE)) { MessageBox("注册事件出错!"); closesocket(serverSocket); WSACleanup(); return; } listen(serverSocket, 5); ............................