if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
return -1;
mListen = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if(mListen == SOCKET_ERROR)
return -2; aLisen.sin_family = AF_INET;
aLisen.sin_port = htons(7777);
aLisen.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(mListen,(struct sockaddr*)&aLisen,sizeof(aLisen) == SOCKET_ERROR))
{
CString tmp;
tmp.Format("%s:%d","Bind Error",WSAGetLastError());
AfxMessageBox(tmp);//Bind Error:10014
return -3;
}
listen(mListen,8);
bind会出错,为什么?谢谢!

解决方案 »

  1.   

    aLisen.sin_addr.s_addr = htonl(INADDR_ANY) //有必要这样吗?
    aLisen.sin_addr.s_addr = INADDR_ANY  //这样就可以的
      

  2.   

    其实昨天发了贴子马上就发现了问题
    if(bind(mListen,(struct sockaddr*)&aLisen,sizeof(aLisen) == SOCKET_ERROR))
    括号的位置不对
    if(bind(mListen,(struct sockaddr*)&aLisen,sizeof(aLisen)) == SOCKET_ERROR)
    就OK。
    谢谢二位的参与!!!