2011-09-26 108 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

相關問題