Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

CUIチャットプログラムの実装方法

Swingを使ったGUIチャットアプリを作ろうと思っているのですが、その前段階としてCUIチャットプログラムを作ろうと思います。今回の質問はそのCUIチャットプログラムの実装方法に関するものです。

CUIチャットプログラムの仕様は以下のようになります。
・2つのパソコンのみで通信するので、片方がサーバープログラム、もう片方がクライアントプログラムとなる。なので、サーバープログラム、クライアントプログラムの順に起動する。
・ソケット確立後はサーバープログラム、クライアントプログラムともに、相手からのメッセージを受信したらコンソールにその受信メッセージを表示し、コンソールに送信メッセージを入力し改行すると相手にメッセージを送る。

以上のようなプログラムを作ろうと思うのですが、Javaプログラミングの経験が乏しく実装方法が良く分かりません。簡単な実装例をご教授願えないでしょうか。

以下に自分なりに調べた上で生じた疑問を書いておきます。こちらの方も答えて頂けると幸いです。
・ソケット通信では日本語が扱えないのだろうか。日本語を送受信するにはどう実装すれば良いか?
・相手からのメッセージを受信するスレッドと、コンソール入力を監視するスレッドを作らなければならないのだろうか?その実装方法は?

よろしくお願いします。

1

回答

4170

閲覧

1件の回答

評価

0

色々と書いてはいるが、それでは丸投げと変わらんぞ。
必要なのは、仕様を細々とした部品に分解することだ。そしてそれらの部品を一つ一つ作り、分からなければ使えそうなサンプルを書籍やネットで探して、組み合わせる。
どんな大きなシステムも、小さな部品の組み合わせだ。
最初から動くモノを要求しないで、まずは自分の頭と手を動かす。
その上で解らないところを、ピンポイントで質問しよう。


ソケット通信は、アプリレベルで見ればbyte配列の送受信あって(Javaではstreamにラップしているが)、このレベルではどんな文字コードとも関係がない。
これに対して両端のエンコーダ・デコーダに同じものを用意すれば、特定の文字コードで送受信することになる。
ある特定の文字コードで書かれたテキストファイルを読むとき、何をどう指定するか?と同じだ。

スレッド1つでもできないことはないが、大抵は送受信で1ワーカースレッドずつ、入力監視にメインスレッドを充てるのではないかな。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。