我现在要用WINSOCK编一个http服务器程序只与一台客户机相连,问题是服务器侦听80端口,那它需不需要服务器的IP地址,如果需要,是127.0.0.1还是它在网络中的固定IP(对外公开的)

解决方案 »

  1.   

    应该需要服务器的ip,平常我们的ie是通过域名解析获得服务器的ip地址的,
    如果是外网,地址应该是internet服务提供商给你的动态ip.
      

  2.   

    服务器是HTTP,客户机使用POST方式与服务器相连,C/S传递XML文档,现在服务器的固定
    IP是(211.65.20.2),要监听端口80,问题是如何绑定IP和端口,程序如下:
    BOOL CTCPServer::Listen(LPCSTR _ip, WORD _port)
    {
    m_sIP = _ip;
    m_wPort = _port; m_sockServer = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP); if(INVALID_SOCKET == m_sockServer)
    {
    cout << "Invalid socket! Listen failed!" << endl;
    return FALSE;
    } m_addrServer.sin_family = AF_INET;
    m_addrServer.sin_port = htons(m_wPort);
    m_addrServer.sin_addr.S_un.S_addr = inet_addr(m_sIP); if(SOCKET_ERROR == bind(m_sockServer , (sockaddr *)&m_addrServer , sizeof(sockaddr)))
    {
    cout << "Bind socket error! Code: " << WSAGetLastError() << endl;
    return FALSE;
    } if(SOCKET_ERROR == listen(m_sockServer , SOMAXCONN))
    {
    cout << "Socket listen error! Code: " << WSAGetLastError() << endl;
    return FALSE;
    } int iLen = sizeof(sockaddr);
    getsockname(m_sockServer , (sockaddr *)&m_addrServer , &iLen);
    cout << "Socket #" << m_sockServer << " listening at " << (LPCSTR)m_sIP;
    cout << ":" << _port << "..." << endl;
    return TRUE;
    }
    程序调用后错误代码为:10049
    不知问题出在什么地方?
      

  3.   

    服务器: 
    server_ipaddr.sin_family=AF_INET;
     server_ipaddr.sin_port=htons(80);
     server_ipaddr.sin_addr.s_addr=inet_addr("211.81.55.200");
    其中"211.81.55.200"是什么地址啊?