Appletで動作するチャットソフトを作成したい

このQ&Aのポイント
  • Appletで動作するチャットソフトを作りたいです。サーバーが更新されたタイミングで最新のデータを全クライアントに向けて発信する仕組みを導入し、公共で使用可能なチャットにしたいです。ピュアJavaであり、標準ライブラリのみ使用し、軽量な環境を要求します。
  • 過去にLAN上で動作するチャットソフトを作成しましたが、ポーリング方式を改善したいと考えています。Socketを使用し、TCPプロトコルを使って実装していました。
  • 5年ほど前に作成したチャットソフトを発展させるため、データの取得方法を改善し、アプリケーションをAppletで動作するようにしたいです。特別な環境を要求せず、クライアントとサーバー間のやり取りをポーリング以外の方法に切り替えたいです。
回答を見る
  • ベストアンサー

Appletで動作するチャットソフト(ポーリング方式以外)を作りたいで

Appletで動作するチャットソフト(ポーリング方式以外)を作りたいです。 趣味でJavaをやっている素人ですが、最近色気を出してApplet等に手を出しています。 過去、LAN上で動作するチャットソフトを作っています。(クライアント+サーバー) 同一のLAN上で動作させ、クライアントからサーバーに向けて、 入力されたメッセージや、サーバーになんらかの振る舞いをさせる為の特別な意味を持ったコードを送ったりと言った形でやり取りをする仕様です。 クライアントがサーバーの蓄えているメッセージを取得するのも、データをくれという意味のコードを定期的にサーバーに向けて発行して実現していました。 いわゆるポーリング方式の部類の実装なのかなと思います。 尚、実装にはSocketを使用していました。プロトコルはTCPです。 これが大体今から約5年程前の事です。 今回、これを発展させて2つの目標を達成したいと思っています。 1つ目に、データの取得方法を改善する為に、クライアント⇔サーバー間のやり取りをポーリング以外の方法に切り替えたいです。 具体的にどんな方式が良いかと言うと、サーバーが更新されたタイミングで最新のデータを全クライアントに向けて発信する様な感じにしたいです。 2つ目は、上記の改良を行った上で、アプリケーションをAppletで動作する様にしたいです。 これまでLAN上でのみ動作していたチャットを、公共で使用可能なチャットにしたいです。 他、要件としましては、ピュアjavaである事、標準ライブラリのみ使用する事、軽量を第一としているのでサーバー、クライアント共にポートの開放とJREの導入以外に特別な環境を要求しない事ぐらいです。 色々と調査していますが、なかなか難航していますのでお助け下さい。 また、とっかかりになるようなHPがあれば、教えいただきたいです。 宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • ojapro
  • ベストアンサー率100% (1/1)
回答No.1

参考になるかどうかわかりませんが、こんな記事があります。 http://codezine.jp/article/detail/193

takooooooo
質問者

お礼

これをもとに勉強させていただきます。 ありがとうございます。

関連するQ&A

  • 動作の軽いビデオチャットソフトありませんか?

    現在MSNメッセを使って、ビデチャしているのですが 後ろでほかのアプリを使っていたりすると すぐに「回線が不安定のため…」と警告がでてラグが発生してしまいます。 (ちなみに双方とも光ファイバー接続) アプリを動かさなければいいわけなんですけども^^; MSNメッセ以外にもスカイプなどフリービデオチャットソフトで 比較的動作の軽いおすすめソフトはありますでしょうか? MSNメッセよりも動作が軽いであれば有料のソフトでも構いません。 スカイプではプラグインを追加してのビデオチャットになるんですが 動作はさくさくしているのでしょうか? 使っている人で検証した事がある方いましたらコメントお願いします^^

  • C++でマルチスレッドによるネットワークプログラムを行いたいと考えてお

    C++でマルチスレッドによるネットワークプログラムを行いたいと考えております。 質問の内容は「どちらの方が速度的に有利か?」という二択です。 Linux、C++にてサーバープログラムを作成する予定で、実装したい内容は複数人の映像チャットのようなものをP2P型ではなくサーバー-クライアント型で行います。 1部屋で10人の通信を行うとして10部屋の通信を扱いたいです。(部屋の数は変動します) そこで以下の方法のどちらが効率的かを教えていただきたいです。 方法1 外部と通信するスレッドは1つで使用するポートも一つ(100人からの接続をポーリングで対処) 部屋の中身の処理をマルチスレッド化しておき通信システムが各部屋と情報をやりとりする 方法2 部屋ごとにスレッドを作成 各部屋(スレッド)が通信機能を持ち、ポートは部屋ごとに変える 方法1、2以外に、どちらも変わらないという選択肢でも構いません。 どうぞよろしくお願い致します。

  • XP modeにインストールしたソフトの動作が遅い

    サーバー上にDBを設置し、弊社にて開発したソフトを2拠点で使用しています。環境としては下記の通りです。 サーバーOS   :Windows Server 2008R2 DBソフト     :SQL Server 2008R2 クライアントOS :Windows7 Professional SP1(32bit)のXP mode 開発ソフト    :VB .NET ネットワーク   :インターネット未接続、社内LANのみ サーバーのある拠点では快適に動作するのですが、もう1拠点の方で動作が極端に重く非常に困っています。 【拠点(サーバー有)】 画面遷移/カーソル移動:1秒未満 ソフト起動/終了   :1~2秒 【拠点(サーバー無)】 画面遷移/カーソル移動:2~3秒 ソフト起動/終了   :5~6秒 可能性として考えられる原因について、どういった事でも結構なのでご教授いただけますでしょうか。

  • ファイルサーバー・・

    LANを組んでおります。サーバーPCと各クライアントPCがあります。サーバーwindows2000server、クライアントはwindowsXPです。使用ソフトは勘定奉行です。各クライアントにソフトはインストールされています。データはサーバーにあります。このソフトの動作を早くする為、メモリーを増設しようと思っているのですがクライアントのメモリーだけ増設で良いでしょうか??サーバーにもメモリー増設は必要でしょうか??宜しくお願い致します。

  • サーバとクライアント間でのJAVA APPLETの起動の仕方

    大学の授業でJAVAを少しやっております。 そこで、課題として出されたのが、サーバーにあるJAVA APPLETをクライアント側で起動するというものです。 簡単なものでいいというのですが、どのようにしたらいいのか全くわかりません。 一応RMIとかいうのはやっているのですが、RMIでこのようなことはできるのでしょうか。 もし、できなければどのような方法でやればよいのでしょうか。 回答よろしくお願いします。

  • JavaアプレットからローカルJarを利用する方法

    クライアントのローカルフォルダに格納されているJarファイルを Javaアプレットから呼び出して使用することは可能でしょうか? クライアントにC:\Applet\lib\app-test.jarの様に、jarファイルが格納されているとして、 Javaアプレットからこのjarを使用しようするには、どのような設定が必要でしょうか? 現在は、NoClassDefFoundErrorになってしまいます。 eclipseで開発するときは、ビルドパスに上記パスを設定するので、問題なく動作します。 また、app-test.jarをC:\Program Files\Java\jre1.5.0_22\lib\extフォルダに格納すれば、 正常に動作します。 CLASSPATHを設定すれば良いのかと思い、C:\Applet\lib\app-test.jarを クライアントの環境変数(CLASSPATH)に登録しましたが、同じエラーが発生します。 C:\Applet\lib\app-test.jarを利用するために必要設定(環境変数、HTMLのobjectタグ、 java.policyなど)があれば教えてください。 以上

    • ベストアンサー
    • Java
  • ntpクライアントの時刻同期の周期

    フリーのntpを導入してstratum2サーバへ時刻同期 しに行ってます。 この上位のサーバへの時刻同期をしに行く周期に ついて調べてみたのですが、有用な情報を見つけ られませんでした。 動作的にはクライアントからポーリングすると 思うのですが、どのような周期で行くかご存知 でしたら教えてください。 上位

  • Appletの使用に関して

    javaでゲームを作っていて、サーバーとクライアントプログラムがあるのですが、ブラウザで表示したいと思い、クライアントプログラムをApplet化しました。デバッグをしたところ、appletviewer ファイル名.htm で実行すると動作するのですが、HTMLファイルをダブルクリックしても表示されません。また、アップロードして、ブラウザで実行しようとしてもうまくいきません。 とりあえず、なぜappletviewerで出来るファイルをダブルクリックでやると出来ないのかがわからないので2つの実行の仕方の違いを教えて下さい。 また、ブラウザで出来ない理由としてどのようなことが考えられるのでしょうか?

    • ベストアンサー
    • Java
  • Soc

    秀和システム出版の「Javaネットワークプログラミング」 に載っているクライアント・サーバ型のチャットプログラムがあります。クライアント側のプログラムはアプレットを使用してあります。 1台PCで、サーバプログラムを起動して、クライアント側のアプレットを起動すると、うまく動作してくれて、チャットで文字のやり取りができます。 しかし、2台のPCで、1台はサーバプログラムを起動して接続待ちの状態にしておく。もう一台のPCでクライアント側のアプレットを起動して、接続を試みるとエラーが出てサーバに接続できないという問題が生じます。 エラーを見てみると、セキュリティーの問題で、接続できない、というような内容のエラーがでます。 接続にはSocketを使用しています。 アプレットから、他のサーバに接続したりすることは、許されていないんでしょうか? このあたりを検索したら、ポリシーファイルを書き換えないといけないようなものを見つけました。 手書きで書きかえるような説明は見つけたのですが、 プログラムから書きかえるというか、接続の権限を与える方法はないのでしょうか? ヤフーのチャットなども、確かアプレットで動いてるとおもうのですが(ActiveXかな?)、サーバと接続できてますよね。 java.netクラスにSocketPermissionクラスがあるのですが、これを使って接続することはできないのでしょうか? SocketPermission sp; sp = new SocketPermission("197.170.11.3" + ":" + "5555","accept,connect") とするとリファレンスには書いてあるんですが、 この後、spをどのようにすればいいのかわかりません。 というかこの方法でできるのかもわかりません。 ご存知の方いらっしゃいましたら、アドバイスをいただけないでしょうか?

    • ベストアンサー
    • Java
  • Appletをクライアントで実行する

    サーバに置いたJava AppletをLan上のクライアントマシン 上で実行下場合、クライアントOSにあらかじめ入れておく 必要があるもの(ソフト、環境設定等)はありますか? JavaRuntimeを入れる必要はあるのでしょうか? またこれはサーブレットに関しても同様なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう