• 締切済み

ソケット通信におけるコントローラの作成

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

みんなの回答

回答No.1

定期通信が実現できませんって、どう躓いてるのかな。 単純に考えたら永久ループで回しておけばいいんじゃないの? 適切なsleepは必要だけど。

namamura
質問者

お礼

以下のコードのように永久ループで回すことは考えましたが,結局一度しか通信してくれません.その点ではまっています. ================================================== while(true){ System.out.println("aaa"); requestData="LIGHT ON"; bWriter.write(requestData, 0,requestData.length()); bWriter.newLine(); bWriter.flush(); System.out.println("Client(Light): "+requestData); readSt=bReader.readLine(); System.out.println("Server:"+readSt+"にする"); } ==================================================

関連するQ&A