あなたのリンクされたドキュメントは壊れていますが、ネットワークソケットがどのように機能するか少し説明します。
コンピュータには複数のネットワークインターフェイスがあります。ウィンドウを実行している場合は、ipconfig /all
をlinux/osxでifconfig
と実行して確認できます。 IPアドレス127.0.0.1のループバックインターフェイスがあることがわかります。また、便宜上、このループバックインターフェイスに "名前"を追加することに決めました。それはlocalhost
です。 /etc/hosts
ファイルでは、127.0.0.1とlocalhostの間のマッピングが存在することを確認できます。
これは、コンピュータがシステムカーネルを使って自分自身でlocalhostへのルートを見つけることができると言っています。このループバックインターフェイスは仮想で、オペレーティングシステムに実装されているため、パケットはイーサネットインターフェイスまたはWi-Fiカードを経由しません。
TCPとUDPは、データを送信するためにIPの上で使用されるプロトコルです。 TCPは3-way handshake経由で接続を確立し、パケットの受信はサーバーによって確認応答されます。 UDPは非接続型であるため、クライアントはポートにパケットを送信し、確認応答は送信されません。それはちょうど巨大な要約です。
ポートでリスンしたいとき、アプリケーションは実際にオペレーティングシステムにそれを伝える必要があります。そして、OSのネットワーキングコンポーネントがTCP.dst値が6666(あなたの場合)のパケットを受信すると、アプリケーションにペイロードを送信します。 OSは、あなたから透過的であるパケットとすべての下層通信を承認する責任があります。
オペレーティングシステムは、同じポートポートを1つのアプリケーションにのみバインドできます。 Webサーバーを2回起動すると、2回目の実行は失敗します。
Linuxマシンでnetstat -l
でリスンしているポートを確認できます。