これは、より一般的なソケットの質問です。Javaでは、ServerSocketを特定のポート(たとえば4444)にバインドしている場合、接続要求をリッスンしていることを理解しています。accept()メソッドは、接続要求が受信され、クライアントと通信するための新しいソケットを返すまでブロックします。返されたソケットのリモートエンドポイントは、クライアントのIPアドレスとポートです。
ただし、私が混乱しているのは、返されたSocketのローカルポートが、要求をリッスンしているServerSocketのポート番号(この場合は4444)と同じであるということです。2つのソケットを同じポートにバインドできないと思いましたか?返されたソケットはサーバー上の別のポートではないでしょうか?