请问我的SOCKET为什么不能运行?
我的SOCKET 服务器部分老是Bind Error 
可以在别人的机子上运行好好的,
请高手指点!
   谢谢!

解决方案 »

  1.   

    这是我的服务器代码
    SOCKET m_hSocket=INVALID_SOCKET;  m_hSocket=socket(AF_INET,SOCK_STREAM,0);
     UpdateData();
     sockaddr_in m_addr;    
     m_addr.sin_family=AF_INET;
     m_addr.sin_addr.S_un.S_addr=INADDR_ANY;
     m_addr.sin_port=htons(80);
     int ret=0;

     int error=0;
     ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr));
     if(ret==SOCKET_ERROR)
     {
     m_state="Bind Error:";
     UpdateData(FALSE);
     return;
     }
     ret=listen(m_hSocket,2);
     if(ret==SOCKET_ERROR)
     {
     m_state="Listen Error";
     UpdateData(FALSE);
     return;
     }
     SOCKET s=accept(m_hSocket,NULL,NULL);
     if(s==SOCKET_ERROR)
     {
      m_state="Accept Error";
     UpdateData(FALSE);
     
     return;
     }
     else
     {
     m_state="Accept success";
     UpdateData(FALSE);
     }
     char buff[256];
    ret=recv(s,buff,20,0);
    m_data=buff;
    UpdateData(FALSE);
     
     closesocket(m_hSocket);
      

  2.   

    什么错误?WSAGetLastError()看看?可能你的机器端口80被占用。
    你用netstate -p TCP看看吧,80是谁在占用。一般来说可能是iis web server了。
      

  3.   

    可能是吧,我才装的ISS ,那怎么解决呢?
      

  4.   

    但我还是不能解决这个问题,我把端口号改了,虽然没有BIND ERROR 但,是运行好像,很顿,我只好把ISS下了,这样就能运行机制了,如果不下ISS ,用那个端口号好啊,请指教,谢谢!
      

  5.   

    TCP一般来说1024以下的端口都被预留了。一般都是1024以上。如果发现Bind不成功,可以用netstat -p TCP来查看端口占用情况。
      

  6.   

    netstat -p TCP怎么用啊,是在命令行中打么?
    我试了怎么不行啊