bind()和listen()函数出错(WinSock)

时间:2013-06-20 17:38:17

标签: c++ winsock

我正在使用WinSock并且我遇到一个问题:如果我将MY_IP定义为“127.0.0.1”,这可行,但我不希望这样,我想定义{{1成为“109.95.202.122”,但它不起作用。

我失败了:MY_IPFail bind()

Listen Error

1 个答案:

答案 0 :(得分:1)

如果bind()listen()失败,请致电WSAGetLastError()以找出失败的原因。

如果服务器将自身绑定到127.0.0.1,则客户端将只能连接到127.0.0.1。如果客户端需要连接到109.95.202.122,则服务器需要绑定到将接受客户端的本地IP,或指定INADDR_ANY绑定到所有可用的本地IP。如果109.95.202.122是服务器的本地IP,那么一切都很好。但是,如果109.95.202.122实际上是服务器正在运行的路由器/ NAT的公共IP,则服务器需要绑定到路由器/ NAT配置为端口转发入站请求的本地IP。 bind()只能绑定到属于运行bind()的计算机的本地IP。