首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

bind始终不成功,异常代码为10049

2012-01-13 
bind始终不成功,错误代码为10049BOOLCServerDlg::InitNetwork(){WSADATAwsaDataif(WSAStartup(MAKEWORD(2

bind始终不成功,错误代码为10049
BOOL   CServerDlg::InitNetwork()
{
WSADATA   wsaData;
if(WSAStartup(MAKEWORD(2,1),   &wsaData)   !=   0)
{
WSACleanup();
AfxMessageBox( "初始化网络协议失败! ");
return   FALSE;
}

ServerSocket   =   socket(PF_INET,   SOCK_STREAM,   IPPROTO_TCP);
if(ServerSocket   ==   INVALID_SOCKET)
{
closesocket(ServerSocket);
WSACleanup();
AfxMessageBox( "创建套接字失败! ");
return   FALSE;
}
       
sockaddr_in   localAddr;
//memset((void*)&localAddr,   0,   sizeof(localAddr));
localAddr.sin_family   =   AF_INET;
localAddr.sin_port   =   htons(8888);
localAddr.sin_addr.s_addr   =   htonl(INADDR_ANY);
WSAStartup(MAKEWORD(2,1),   &wsaData);
if(bind(ServerSocket,   (struct   sockaddr*)&localAddr,   sizeof(localAddr))   ==   SOCKET_ERROR)
{
//就在这里绑定不起,错误代码为10049
closesocket(ServerSocket);
WSACleanup();
AfxMessageBox( "绑定地址失败! ");
return   FALSE;
}

if(WSAAsyncSelect(ServerSocket,   m_hWnd,   NETWORK_EVENT,   FD_ACCEPT|FD_READ|FD_CLOSE)
      ==   SOCKET_ERROR)
{
closesocket(ServerSocket);
WSACleanup();
AfxMessageBox( "注册网络异步事件失败! ");
return   FALSE;
}

if(listen(ServerSocket,   5)   ==   SOCKET_ERROR)
{
closesocket(ServerSocket);
AfxMessageBox( "设置监听失败! ");
WSACleanup();
return   FALSE;
}

return   TRUE;
}

[解决办法]
if(WSAStartup(MAKEWORD(2,1), &wsaData) != 0)
{
WSACleanup();
AfxMessageBox( "初始化网络协议失败! ");
return FALSE;
}
改称
if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
{
WSACleanup();
AfxMessageBox( "初始化网络协议失败! ");
return FALSE;
}

ServerSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
改称ServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

//memset((void*)&localAddr, 0, sizeof(localAddr));
去掉注释,并改成 memset(&localAddr, 0, sizeof(localAddr));

把bind前边一行的 WSAStartup(MAKEWORD(2,1), &wsaData);注释掉

在试一下


热点排行