0

PC ^ 2(プログラミングコンテスト審査システム)と呼ばれるプログラムがあります。あなたはそれにjavaファイルを提出することができます、そしてそれはそれをコンパイル/実行します。

ソケットを作成するプログラムがあります。これをPC^2に送信すると正常に実行されますが、WebブラウザーでURL(http:// ip:port /)にアクセスできません。しかし、PC ^ 2を終了すると(プログラムはまだ実行中です)、Webブラウザーで更新を押すと機能します。これは、PC ^ 2が何らかの形でポートをブロックしているが、それを占有していないことを意味します(つまり、ポートを占有している独自のServerSocketを作成している)。これは、PC ^ 2がポートを占有している場合、プログラムが例外をスローして終了するためです。

Javaプログラムがこれを行うことができる可能な方法は何ですか?そして、PC ^ 2はクローズドソースなので、私はそこを見ることができません。

4

2 に答える 2

3

一度に1つのプログラムだけが特定のポートをリッスンできます。

someポートを使用してTomcatを2回起動した場合も同じことが起こります

これはJavaとは何の関係もありません。それがソケットの仕組みです

于 2012-04-06T18:07:56.910 に答える
1

PS ^ 2がローカルで実行されている場合は、プログラムを実行する前に、PS^2がリッスンしているかどうかを確認できます。PS2バージョン9が通信にソケットを使用しているのを見たので、おそらくそれが起こっているのでしょうか?Windowsでは、これらの手順は、どのプロセスがポートでリッスンしているかを確認するのに役立ちます。Linuxでは、このページが役に立ちます

于 2012-04-06T19:58:03.620 に答える