4

Javaでは、常にリッスンしているポートを開いて、パケットの受信時に送信するのが最善の方法です。私は現時点ではネットワークプログラミングに特に精通していないので、ネット上で見つけたチュートリアルは特に役に立ちません。

リスニングソケットをサーバーソケットとして使用し、サーバーにデータを送信するために使用しているソケットとは別のスレッドで実行するのは理にかなっていますか?

大まかに関連する質問で。単純にJava用にプログラミングし、NetBeansでそれをエクスポートして、ブラックベリーで使用する(プラグインを使用する)かどうかを誰かが知っていますか?ソケットは引き続き機能しますか?

4

4 に答える 4

12

スレッド化を行う余裕がある場合は、これを試してください (例外処理やスレッドの扱い方などの詳細を省略していることに注意してください)。SocketChannelsおよび/またはNIO非同期ソケット/セレクターを調べたい場合があります。これで始められるはずです。

boolean finished = false;
int port = 10000;
ServerSocket server = new ServerSocket(port);

while (!finished) {
    // This will block until a connection is made
    Socket s = server.accept();
    // Spawn off some thread (or use a thread pool) to handle this socket
    // Server will continue to listen
}
于 2008-09-05T12:20:37.213 に答える
2

ソケットコードをBlackBerryで実行する必要がある場合、標準のJavaソケットを使用することはできません。J2ME Con​​nector.open APIを使用して、両方のタイプのソケット(BlackBerryからの接続を開始するソケットと、BlackBerryで接続/プッシュをリッスンするソケット)を作成する必要があります。RIMのJDEに付属している例をご覧ください。

于 2008-09-17T22:30:08.770 に答える
2

Blackberry への接続に関しては、ほとんどの場合、Blackberry にはパブリック IP アドレスがなく、代わりに WAP ゲートウェイまたはワイヤレス プロバイダーのアクセス ポイント サーバーの背後にあるため、これは問題があります。RIM は Mobile Data Server (MDS) を提供してこれを回避し、Blackberry で ServerSocket セマンティクスを使用する「プッシュ」データを提供します。MDS は、Blackberry Enterprise Server (BES) および Unite Server で利用できます。

設定したデータは、HTTP プロトコルを使用して MDS 経由で特定のユニットに送信できます。Push プロトコルの優れた説明が、LAMP ソース コードとともにここにあります。pushout.plのパラメーター PORT=7874 は、Blackberry Browser Push サーバー ソケットに接続します。そのパラメーターを変更することで、独自の ServerSocket が接続を受け入れている任意のポートにペイロードを送信できます。

于 2008-09-17T13:54:01.693 に答える
1

これも基本に立ち返る必要があります。そのような場合のコード例を含むO'Reilly の優れたJava in a Nutshell (オンラインでも入手可能) をお勧めします。早い段階で下すべき決定事項の概要については、第 7 章を​​参照してください。

于 2008-09-05T12:37:02.837 に答える