• 締切済み

javaによるソケット通信

こんばんわ. 現在悩んでいる事があります. あるプログラムと別のプログラム同士で通信を行い互いに影響を与えるようなプログラムは作成可能でしょうか. 例えば,一元的に全体を管理するコントローラがあり,コントローラからの命令で別のプログラムが動作する,コントローラはそのプログラムが動作中であることを知ることができる,といったプログラムを作成したいと思っています. これらを別のプロセス(hello.javaとworld.javaのように)で行いたいと考えています. こういったことはjavaによるソケット通信で行えるのでしょうか. 行えるのならどのように行えばいいのでしょうか?私の考えでは.ソケット通信でやるなら,コントローラがクライアントでその下に位置するプログラムがサーバということになると思いますが・・いまいちよくわかりません. ご存知の方がおられましたらご教授お願いいたします.

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

みんなの回答

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.1

可能です。 比較的に簡単にやるならrmiやCORBAを調べてみてください(あくまで比較的ってだけでそれでも割と面倒です)。

namamura
質問者

お礼

可能ですか.ありがとうございます. ご指摘の件調べてみます.

関連するQ&A

  • ソケット通信について

    VC++6.0MFCでソケット通信のプログラムを作成しようとしています。勉強始めたばかりなので、やっと普通に通信するプログラムは理解できたところです。 そこで応用していろいろ考えているのですが、方法がわからないところがありますので教えていただければと思ってます。 サーバ側の接続待ちはいつでも受けれるようにして、接続してきたクライアントに対して送信したいと考えております。ソケットの接続情報を保持しておいて、別プロセスの送信プログラムが接続クライアントに対して送信したいと考えてます。その送信プログラムが複数ある場合も同じ接続情報を利用したいと考えてるのですが、可能でしょうか。 説明が下手で申し訳ありません。補足はいたしますので、アドバイスお願いいたします。

  • ソケット通信

    現在プロセス間通信について学んでおり、 今はソケットを使ったプロセス間通信のプログラムを書いています。 そのソケット通信での質問なのですが、 2台のパソコンでINETドメインのソケットを使って プログラムを書いているのですが、 サーバーを実行した後、 別のパソコンでサーバー側のパソコンのIPアドレスを指定して クライアントを実行しようとすると、 connect:Connection timedout と表示されて実行できません。 同じプログラムをUNIXドメインで 1台のパソコンで実行すると正しく実行できます。 これは、プログラムに問題があるのでしょうか? それとも、ソケット通信を行う際には 何かパソコン等の設定が必要なのでしょうか? 教えてください。お願いします。 あと、セマフォを用いたプロセス間通信のサンプルプログラムが のっているホームページなどご存知でしたら、 教えていただけるとありがたいです。

  • 異なる言語間でのソケット通信について

    簡単なネットワークプログラムを作成して、ソケット通信の確認をしています。 クライアントとサーバが両方ともにC++の場合と、両方ともにJavaの場合で、正常に通信が行われていることは確認しました。 そこで、クライアントでC++のプログラムを動かし、サーバでJavaのプログラムを動かしてみたのですが、うまくいきませんでした。 (ポート番号を合わせたので、相互接続は出来てるみたいですが、データが渡ってきませんでした。OSはクライアント/サーバともに、Windowsです。) 言語が異なる場合の、ソケット通信について良いサイトをご存知でしたら、教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • ソケット通信におけるコントローラの作成

    こんにちは.いつもお世話になっています. 質問なのですが,現在ソケット通信でサーバプログラム,クライアントプログラムで通信し,文字列をやり取りするプログラムを作成しました. このクライアントプログラムは3つあり,3つのプログラムすべてがサーバに接続されるとサーバが文字列を返す仕組みになっています. そこで,この三つのプログラムが別々のPC上に乗っている場合に三つのプログラムを一つのコントローラプログラム(一台のPC)上から起動あるいは通信させられるようにプログラムを作りたいと思っています. 例えばコントローラプログラムを起動すると,1:プログラムAを起動,2:プログラムBを起動,3:プログラムCを起動,という選択肢が表示され,1を選択すると別PC上のプログラムAが起動する,という方式です.実際にはプログラムAの起動は手作業で行って,通信の開始だけをコントロールできる方式でも構いません. 考えとしてはクライアントプログラムが定期的にサーバプログラムと通信を行っていて,サーバプログラムがコントローラプログラムから命令を受け取ったらフラグを立て,そのフラグをみてクライアントプログラムが通信を開始する,というものなのですがどうもうまくいきません.(定期通信が実現できません) どうすればこのような構成を実現できるでしょうか? ご教授お願いします.

  • JAVAのソケット通信の接続数について

    JAVAのソケット通信の接続数について ServerSocket server= new ServerSocket( port ); server.setSoTimeout( 4000 ); Socket socket = server.accept();//クライアントからの接続をまつ 以上のコードを使っていますが、クライアントからの接続数を調べる方法はないでしょうか?

    • ベストアンサー
    • Java
  • JAVAでノンブロッキングモードでの通信はできますか。

    このたび、JAVAでTCP/IPプロトコルの通信を行うことになりました。今までは、UNIXでC言語で開発してきたのですが、その場合は、ノンブロッキングモードを使用してプログラムを作成しました。JAVAで、ノンブロッキングモードで通信することは、可能なのでしょうか。又、可能であれば、その方法は、ソケットオプションの設定で行うのでしょうか。

    • ベストアンサー
    • Java
  • TCP/IPソケットプログラミングJava編について

    TCP/IPソケットプログラミングJava編という本を使って通信ネットワークの勉強をしています。 この本は一通り読んでプログラムの動作確認を行ったのですが、第4章の圧縮サーバのプログラムの動作確認が取れません。 圧縮サーバのプログラムは、本に乗っていなくて自作する必要があります。 どなたかこのプログラムを作成した方いらっしゃいませんか? いらしたらソースコードを教えていただきたいです。

    • ベストアンサー
    • Java
  • Javaのソケット通信について初歩的な質問です

    私はいま、独学でJava言語の勉強をしています。 おそらく初歩的な質問ですが、いくら検索をしても見つからなかったため、質問させていただきます。 JavaでTCPを使ってソケット通信をする際の質問です。 WiFiのアクセスポイントAとアクセスポイントBがあるとします。 クライアントのアプリケーションが、アクセスポイントAからインターネットに接続し、サーバのIPアドレスとポート番号を使ってソケットを作り、サーバとTCP通信をしているとします。 このとき、クライアントが動いて、アクセスポイントBに接続したとします(接続が自動で切り替わる)。 このような場合でも、サーバとクライアントのコネクションは保っていられるのでしょうか? もしくは、このような場合でもコネクションを保つ方法はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • Androidのソケット通信(初歩)

    Androidでソケット通信を行いたいなのですが エミュレータ環境でも実機環境でもうまく動作しません。 何かを送信するまでもなくソケット作成の時点で落ちてしまいます。 通常のJavaプログラム間でなら通信できるのですが、何かやり方が間違っているのでしょうか? (1)PC側でJavaのサーバプログラムを起動しておく。 (2)Androidのエミュレータあるいは実機で起動 (3)Androidのボタンを押してソケット作成(下記プログラムが実行される) (4)Android側が強制終了する 以下の単純なプログラムを使用しています。 また、IP、Portは正しくファイアウォールも無効にしています。 Socket socket = null; try { socket = new Socket("***.***.***.***", ****); } catch (UnknownHostException e) { System.err.println("Don't know about host"); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to host"); }

    • ベストアンサー
    • Java
  • ソケット通信での再接続

    ソケット通信での再接続 ソケット通信でサーバ側は立ち上げたまま、 クライアント側を同じポート番号で 何度も再接続できるようにしたいと考えております。 http://blog.livedoor.jp/akf0/archives/51585502.html を参考にマルチスレッドを利用してプログラムを作成してみましたが 最初の起動に関してはうまくいくのですが、 クライアント側を一度終了してもう一度再接続すると、 バインドエラーが出ます。 いろいろ試してみたのですが、 どうしてもうまくいきません。 どうすればいいのでしょうか。 ご存じの方がいらっしゃればお答えいただきたいと思っております。 よろしくお願いいたします。 環境 OS:Windows XP 開発環境:Visual Studio 2008 Express Edition ソケット通信:winsock2 マルチスレッド:win32api

専門家に質問してみよう