2011-09-26 12 views
13

ソケットで 'listen'する前に、まずそれをアドレスにバインドする必要があります。どうして?私は選択する必要はなく、すべてのアドレスでそのポートを聴くべきであると私には思われます。しかし私が127.0.0.1にバインドしても、リモートマシンからそのソケットに接続できるようです。住所へのバインディングは本当に何をしていますか?ソケットにアドレスをバインドするのはなぜですか?

+0

実際に127.0.0.1にバインドされているかどうかをもう一度確認します。本当にそうだった場合は、別のインターフェイスに接続できないはずです。 linuxの場合は、 'netstat -nlut'を実行すると、各サービスのかなりの出力と、それがリッスンしているアドレス/ポートを得ることができます。 – joet3ch

+0

あなたが正しいです、フードの下にあるものが実際に127.0.0.1を0.0.0.0として書き換えていました。 – Pace

+0

@Paceあなたは詐欺師です – Pacerier

答えて

20

アドレスへのバインドは、そのサーバーポートが開かれているインターフェイスを正確に定義します。 0.0.0.0へのバインドは、インターフェイスに認識されているすべてのIPアドレスをリッスンしたい場合に特別なケースです。 具体的には127.0.0.1にバインドすると、サーバーポートがローカルホスト(ローカルプロセスなど)に接続できるコードにだけ表示されるようにしてください。

+3

+1、追加情報。バインディングは、ローカル接続のみを受け入れるために使用できます。複数のIPアドレスを使用している場合は、同じポート上で異なるIPアドレスでリッスンする別のサーバーを持つこともできます。 – jgauffin

関連する問題