2016-05-23 18 views
-2

リスナーを閉じるときにエラーjava.net.BindException: Address already in use: JVM_Bindが発生しました。リスナーを開く際のコードは次のとおりです。java.net.BindException:既に使用中のアドレス:リスナーを閉じるときにJVM_Bindエラーが発生しました

SMPPServerSessionListener sessionListener = new SMPPServerSessionListener(newPort); 

ここに私のコードがあります。

public String getCloseConn() throws IOException{ 
    System.out.println("porttt: " + newPort); 
    SMPPServerSessionListener sess = new SMPPServerSessionListener(newPort); 
    sess.close(); 

    return ""; 
} 

私のプログラムは、ユーザーにポート番号を尋ね、送信時に開始するものです。ユーザーがgetClossConn()メソッドをトリガーする "Stop Server"ボタンをクリックしたときにリスナーを閉じるようにしていますが、私が以前に述べたエラーが発生しています。助けてください。 PS:私はここだけの新たなんだ私に過酷なことしないでください:)

+2

なぜcloseメソッドで新しいセッションを_open_しようとしていますか?サーバーセッションがすでに開いていて、同じポート上で別のセッションを開こうとすると、表示されているエラーが発生します。 –

+1

@ジムガリソンこんにちは、これはあなたが話しているラインですか? 'SMPPServerSessionListener sess =新しいSMPPServerSessionListener(newPort); '私はこの行でアクティブなセッションを呼び出すと思っていましたし、' sess.close() 'を呼び出して閉じていました。私はそれを正しくやっていないのですか? – chiradee

+0

私の答えを参照してください –

答えて

0

既存のリスナーを得ることを期待し

SMPPServerSessionListener sess = new SMPPServerSessionListener(newPort); 

を呼び出すべきではありません。このステートメントは、既存のリスナーと同じポート上に新しいリスナーを作成しようとします。これにより、表示されているエラーが発生します。

既存のセッションへの参照をcloseメソッドに渡して、代わりにを閉じてください。

+1

ありがとうございます@ジムガリソン。それは私のためにうまくいく。 :) – chiradee

関連する問題