4

Java で簡単な LAN 会議チャット スタイルのメッセンジャーを作成したいのですが、どこから始めればよいかわかりません
次の機能が必要です。

  • 永続的なユーザー名なし: ユーザーは参加するたびにユーザー名を入力できる必要がありますが、頻繁に使用する場合に備えて、自分を記憶するオプションが必要です
  • オンラインのすべてのユーザーが右側に表示され、中央にチャット メッセージが表示されるシンプルなチャットルーム インターフェイス
  • プライベート チャット サービスとブロック オプション
  • 既製のコードは必要ありません。どこから始めて、どのように実行するか、知っておくべきこと (たとえば、ユーザー名などを入力するためのテキスト ボックスなど) を誰かに説明してもらいたいのです。次のように想像
    てください。 1 つの建物内のすべての従業員が互いにチャットできるようにするメッセンジャーであること

    4

    3 に答える 3

    7

    あなたの質問はかなり漠然としていますが、基本(ソケットなど)が整っているようです。まず、Oracle のサイトにあるAll About SocketsおよびAll About Datagrams Java レッスンを読んで開始することをお勧めします。2 番目のレッスンの主な内容は、(サーバーの自動検出のための) ブロードキャストに関する部分です。

    高レベルでの実装方法は次のとおりです。

    • 1 つの実行可能ファイルにサーバーとクライアントの機能を含むアプリケーションを実装します。
    • アプリの起動時に、他のサーバーが検出されない場合はサーバーを実行します (自動的に、またはユーザーによって指定されます)。
    • 常にクライアントを実行します。つまり、クライアントの 1 つがサーバーとして機能するため、専用サーバーは使用されません。各クライアントはサーバーに接続します (サーバーと同じマシンで実行されているクライアントを含む)。

    この種のアプリケーションを作成するには、明らかに多くの方法があります。私が説明した方法が最善だと言っているのではありません。ただし、説明したユースケースにはおそらく適していて、その実装はかなり簡単です。

    于 2012-06-18T08:18:08.440 に答える
    5

    ユーザーごとにサーバー アプリとクライアント アプリが必要なようです。それらはソケットを介して通信します。サーバーは a を開きServerSocket、クライアントは を作成Socketし、チャットしたいときにサーバーに接続します。

    サーバーは、クライアントからの接続を受け入れることができる必要があります。サーバーは、どのチャット ルームが存在するか、各チャット ルームに誰がいるかなど、すべてのグローバルな詳細を保持します。ソケット上のサーバー。サーバーには、チャット ルームにいるすべてのクライアント (ソケット) のリストがあり、それぞれにメッセージを送信します。

    最後に、サーバーはマルチスレッド化する必要があり、おそらく接続するクライアント ソケットごとに新しいスレッドが必要になることに注意する必要があります。

    于 2012-06-18T08:27:40.827 に答える
    2

    その目的のためのサーバーがあるかどうかはわからないので、おそらく、以前の回答に加えて、次のリンクが興味深いでしょう。

    http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html

    ブロック オプションを実装して、IP のリストを保存し、それらからのメッセージを無視することができます。

    ウィンドウ、テキストボックス、テキストエリア、ボタンなどを作成する方法を確認できるように、swing チュートリアルも調べて、インターフェイスを作成できるようにする必要があります。

    http://docs.oracle.com/javase/tutorial/uiswing/

    たとえば、プロパティファイルを使用してユーザーを簡単に保存できますが、この種の質問をする場合は、Java を最初から学習しなければならない場合があります。

    于 2012-06-18T08:37:53.830 に答える