1

ポートを強制解放する方法はありますか? ポートは args[] を介して渡されます。複数のデバイスからの UDP パケットを待機するサーバー アプリを構築しようとしているので、常に適切なポートをリッスンすることを確認したくありません。パケットからのデータが処理され、結果が DB に書き込まれます。新しいパケットをリッスンし続けるために、while(true) ループを使用しています。複数のデバイス (たとえば 2000) が一度に送信すると、同時実行の問題が発生する可能性はありますか? while(true) を使用する以外に方法はありますか? 助言がありますか?

EDIT(トピックに合わない場合があります)これらのメソッドを使用して、2バイトと4バイトの長さの符号付き2の補数を変換しています。もっと簡単な方法が見つかりませんでした...

public static Long twosComp16(String str) throws java.lang.Exception
    {
        Long num = Long.valueOf(str, 16);

        int fix = 65536;

        if (num > (fix/2))
            return num - fix;
        else return num;
    }
    public static Long twosComp32(String str) throws java.lang.Exception
    {
        Long num = Long.valueOf(str, 16);

        long fix = 4294967296L;

        if (num > (fix/2))
            return num - fix;
        else return num;
    }
4

2 に答える 2

0
  1. ポートを強制的に解放することはできないと思います。そしてとにかく、それはユーザー次第です。ユーザーのために選択をしないようにしてください。代わりに彼/彼女に聞いてください。そのポートで実行されている他のアプリよりも自分のアプリの方が重要だと思う理由は何ですか?;)
  2. while(running)
  3. 処理量が多い場合は、1つの処理だけで他の処理を待機するのではなく、サーバーがクライアントごとにスレッドを生成するようにします。
于 2012-02-13T12:22:50.927 に答える
0

ポートを強制的に解放する方法はありますか

いいえ、2つのプログラムの両方がポートに空きを要求した場合はどうなるでしょうか。最終的に、ポートを必要とする2番目のプログラムは満たされていない必要があります。

于 2012-02-13T12:22:58.833 に答える