HTTP服务器侦听连接问题? 我现在要用WINSOCK编一个http服务器程序只与一台客户机相连,问题是服务器侦听80端口,那它需不需要服务器的IP地址,如果需要,是127.0.0.1还是它在网络中的固定IP(对外公开的) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该需要服务器的ip,平常我们的ie是通过域名解析获得服务器的ip地址的,如果是外网,地址应该是internet服务提供商给你的动态ip. 服务器是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不知问题出在什么地方? 服务器: 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"是什么地址啊? C++使用IEWebBrowser2控件,如何解决拖动窗口闪烁的问题。 Hough变换提取线段 控件是怎样做出来的? 看windows程序设计后的困惑 一个超级神奇的编程工具 关于VC创建类的问题,急!!! 问网络的问题?(答者有分) 关于 三次握手 SEQ 和 ACK 的问题 图形打印高手请关注 一个类似画板的基础类问题(急) 问个常识性问题: 请问那些通讯协议为什么都叫XX协议栈?? 怎样将两个图片合成一个图片显示?
如果是外网,地址应该是internet服务提供商给你的动态ip.
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
不知问题出在什么地方?
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"是什么地址啊?