1

ローカル ポートがまだ開いていないことを確認する簡単な方法はありますか。一部の TCP ソケット サーバー (Grizzly など) は、デフォルトではこのチェックを行わないようです。このチェックが欠落している場合、サーバーは起動して応答しているように見えますが、クライアント コードはシャットダウンされていない古いサーバーに接続しているだけです。これは非常に悪いことがあります!

ポートが別のプロセスによってまだ使用されていないことを確認できる Java コードの簡単な行はありますか?

4

1 に答える 1

3

それを行うには2つの明らかな方法があります。

  1. localhost のそのポートへの接続を試みます。受け入れられた場合、そのポートは使用されています
  2. そのポートでリッスン モードで ServerSocket を開こうとします。「既にバインドされている」例外が発生した場合、ポートは使用されています

それが役に立てば幸い。

于 2009-11-19T17:55:34.050 に答える