2011-09-26 98 views
13

在'监听套接字之前,我必须先将它绑定到一个地址。为什么?在我看来,我不应该选择,应该只听所有地址上的端口。即使我绑定到127.0.0.1,但似乎我仍然可以从远程机器连接到该套接字。绑定到一个地址真的有什么作用?为什么要将套接字绑定到地址?

+0

我会仔细检查你是否被绑定到127.0.0.1,因为如果真的如此,你不应该能够连接到不同的接口。如果在linux上,你可以运行'netstat -nlut'来得到每个服务的漂亮输出以及它正在监听的地址/端口。 – joet3ch

+0

你是对的,引擎盖下的东西实际上是将127.0.0.1重写为0.0.0.0。 – Pace

+0

@你是冒名顶替者 – Pacerier

回答

20

绑定到一个地址可以准确定义哪个接口应该打开该服务器端口。 绑定到0.0.0.0是一种特殊情况,当您要监听所有知道该接口的IP地址时。 专门绑定到127.0.0.1应该使服务器端口可见只有可以连接到本地主机(例如本地进程)的代码。

+3

+1,附加信息。绑定可以用来只接受本地连接。如果您有多个IP地址,您也可以让不同的服务器在同一个端口上监听,但在不同的IPS上监听。 – jgauffin

相关问题