[解決済み] スレッド "main" で例外 java.net.BindException: アドレスはすでに使用されています - Netbeans でのエラーのみ
質問
私のマシンでは、次のコードはEclipseでコンパイルされますが、Netbeansでは例外がスローされます。 エラーメッセージには、"Exception in thread "main" java.net.BindException.Exception と書かれています。Address already in use"とあります。
このコードをコンパイルするためのNetbeans内の適切な構成は何ですか? 問題は、私が2つの主要な関数を持っているという事実と関係があるように思われます。 どちらかのアプリを実行し始めると、2番目のアプリは起動に失敗し、上記の例外がスローされます。
サーバー.java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws Exception {
Server myServ = new Server();
myServ.run();
}
public void run() throws Exception {
ServerSocket mySS = new ServerSocket(9999);
Socket SS_accept = mySS.accept();
InputStreamReader mySR = new InputStreamReader(SS_accept.getInputStream());
BufferedReader myBR = new BufferedReader(mySR);
String temp = myBR.readLine();
System.out.println(temp);
}
}
Client.java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws Exception {
Client myCli = new Client();
myCli.run();
}
public void run() throws Exception {
Socket mySkt = new Socket("localhost", 9999);
PrintStream myPS = new PrintStream(mySkt.getOutputStream());
myPS.println("Hello server");
}
}
解決方法は?
私が望むことを実現する方法は、特定のクラス(ex.
Server.java
を選択し、[このファイルを実行]を選択します。 これにより、Serverアプリのみを実行することができます。 次に、もう1つのファイルに対して同じ処理を行います。
Client.java
.
しかし、この特殊な状況において、Netbeansはやや混乱/欺瞞的である。 Netbeansが行うのは
Server
プロセスを作成しますが、そのプロセスにプロジェクト名 (例: MyTestNetworkingProject) のラベルを付け、実行番号を付けることで、このプロセスを作成します。
MyTestNetworkingProject run #1
(実際には、最初のプロセスの#1が省かれています)。 次に、Client.java ファイルに移動して "このファイルを実行" を選択すると、2番目のプロセスが生成されます。
MyTestNetworkingProject run #2
. 新しいプロセスが作成されると新しいタブでこれらを生成するため、画面の下部に2つ目の結果ウィンドウが生成されます。
私の特定のコードの性質上、私のアプリケーションが動作していることを確認するために結果ウィンドウを観察したかったのは、Server.javaの結果ウィンドウ(この場合、これは
MyTestNetworkingProject run #1
). 上記の手順で異なるファイルを実行した場合、run #2は最後の実行プロセスであるため、run #1タブを覆うように上部のタブが表示されます。 run #1をクリックすると、コンソールに期待した結果("Hello server")を見ることができますが、次のことを知る/覚えておく必要があります。
MyTestNetworkingProject run #1
は、クライアントアプリではなく、サーバーアプリを表しています。
Uncool, IMO.
関連
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】「java.net.BindException.BindException」を解決するには?Address already in use: JVM_Bind "エラーを解決するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み】予期しない型エラー