-1
私はJavaで非常に基本的なチャットアプリケーションをセットアップしたかったのです。だから私はサーバーとクライアントを書いた。Java ServerSocket/Serverは一度しか動作しません
サーバー:
port = 9694;
server = new ServerSocket(port);
client = server.accept();
optStream = client.getOutputStream();
optWriter = new PrintWriter(optStream);
iptStream = client.getInputStream();
iptReader = new BufferedReader(new InputStreamReader(iptStream));
while(terminateServer == false){
String s = null;
if((s = iptReader.readLine()) != null){
optWriter.write(s + "\n");
optWriter.flush();
}
}
optWriter.close();
iptReader.close();
クライアント:
client = new Socket("192.168.0.100", 9694);
sc = new Scanner(System.in);
optStream = client.getOutputStream();
optWriter = new PrintWriter(optStream);
iptStream = client.getInputStream();
iptReader = new BufferedReader(new InputStreamReader(iptStream));
while(terminateClient == false){
this.send(getMessage());
this.receive();
}
optWriter.close();
iptReader.close();
}
public void send(String text){
String s = null;
s = text;
optWriter.write(s + "\n");
optWriter.flush();
}
public void receive(){
String a = null;
try {
while((a=iptReader.readLine()) != null){
System.out.println(a);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getMessage(){
String s = null;
s = sc.nextLine();
return s;
}
私の計画は、私は繰り返しメッセージを送ることができるようにwhileループを使用することでした。しかし何らかの理由でそれは一度しか動作しません。テキストを入力して、サーバーがそれを返します。あなたは別のものをタイプすることができますが、サーバはそれを返さないでしょう。
誰かが理由を知りましたか?
コードの全体構造は明確ではありません(どのクラスにどのメソッドまたはメンバ、どのスレッドが実行されているかなど)。最小限で、完全で、検証可能な例を貼り付けてください。 – Heri