1

私はチャットクライアントを書かなければならないプロジェクトに取り組んでいます。このプロジェクトでは、UIを使用できず、Javaで作成する必要があります。私はかなり長い間Javaを使用していなかったので、何かをするための「Java」の方法を見つけようとして立ち往生していることに気づきました。

私がやろうとしているのは、受信データを処理してコンソールに出力できるようにすると同時に、入力を許可することです。ノンブロッキングの入出力を同時に行うのは簡単な作業ではない(場合によっては可能でさえある)ことは知っていますが、幸いなことに、これは私が探しているものでもありません。私が欲しいものを説明する最良の方法は、ユーザー入力が始まるまで出力を処理して表示し、印刷できるようにする機能です。

これはC/C ++でswitchステートメントを使用して実行できることは知っていますが、Javaには同等のものがないことがわかりました。私はnioパッケージに出くわし、それを読み始めましたが、今のところ役に立ちません。

Javaのツールセットを使用してこのタスクを実行するための最良の方法に関するいくつかの提案は何ですか?また、これが明確でない場合はお詫び申し上げます。私は自分の願望を言葉にするのに苦労しています。

4

2 に答える 2

1

そのため、最終的には、Graham King のブログのこの投稿にある情報を使用することになりました。これに加えて、単一のスレッドを使用して着信データをキューに入れ、入力が終了したらそれらを出力しました。

着信データは、ユーザー入力が開始されるまで画面に出力され、その後一時停止します。ユーザー入力が発生している間に受信したすべてのデータは、ユーザー入力が終了すると表示されます。

于 2012-11-11T01:39:55.547 に答える
0

これを行う通常のJavaの方法は、複数のスレッドを使用することです。接続ごとに2つの専用スレッド(1つの入力、1つの出力)と、接続に直接関係のないものを処理するために必要なその他のスレッドです。

別の方法として、java.nio パッケージを介してノンブロッキング I/O を使用することもできますが、これはちょっと面倒です。

于 2012-10-26T00:59:10.113 に答える