socket的bind函数是否只能绑定本地IP,不能绑定外网IP么
socket的bind函数是不是只能绑定本地IP,不能绑定外网IP么?
CString m_SiteInfo="xxx.xxx.xxx.xxx";//外网IP
addrSock.sin_addr.S_un.S_addr=inet_addr(m_SiteInfo.LockBuffer());
int retval;
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
MessageBox("绑定失败!");
return FALSE;
}
运行时就出现“绑定失败”
如果把CString m_SiteInfo="xxx.xxx.xxx.xxx"里的IP改为本地IP是没有错误的。
我没有用路由器,用的联通宽带。我认为和联通的NET技术有关
------解决思路----------------------
在这个条件if(SOCKET_ERROR==retval)中加入WSAGetLastError()查看是什么错误码, 然后你就能知道原因。
VS的工具中有查看错误码的工具。
------解决思路----------------------
这个就是他们黑客一般有一个外网的服务器,然后这些被控端主动连接到这个服务器上,然后黑客等着这些电脑上线就行了。
CString m_SiteInfo="xxx.xxx.xxx.xxx";//外网IP
addrSock.sin_addr.S_un.S_addr=inet_addr(m_SiteInfo.LockBuffer());
int retval;
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
MessageBox("绑定失败!");
return FALSE;
}
运行时就出现“绑定失败”
如果把CString m_SiteInfo="xxx.xxx.xxx.xxx"里的IP改为本地IP是没有错误的。
我没有用路由器,用的联通宽带。我认为和联通的NET技术有关
------解决思路----------------------
在这个条件if(SOCKET_ERROR==retval)中加入WSAGetLastError()查看是什么错误码, 然后你就能知道原因。
VS的工具中有查看错误码的工具。
------解决思路----------------------
这个就是他们黑客一般有一个外网的服务器,然后这些被控端主动连接到这个服务器上,然后黑客等着这些电脑上线就行了。