1

サーバー/クライアントソケット接続があり、それぞれの側がメッセージを相手に送信できます。チャットを開始する必要があるクライアント。両側(サーバーとクライアント)のいずれかが「終了」メッセージを送信したときに接続を閉じたい。ここに私のコードがあります:

import java.io.*; 
import java.net.*; 
class TCPClient { 

    public static void main(String argv[]) throws Exception 
    { 
        String sentence; 
        String modifiedSentence; 
while(true){
        BufferedReader inFromUser = 
          new BufferedReader(new InputStreamReader(System.in)); 

        Socket clientSocket = new Socket("localhost", 6789); 

        DataOutputStream outToServer = 
          new DataOutputStream(clientSocket.getOutputStream());


        BufferedReader inFromServer =
          new BufferedReader(new
          InputStreamReader(clientSocket.getInputStream()));

        sentence = inFromUser.readLine();

        outToServer.writeBytes(sentence + '\n');

        modifiedSentence = inFromServer.readLine();

        System.out.println("FROM SERVER: " + modifiedSentence);

        if(modifiedSentence.equals("quit\n")) clientSocket.close();

}
    }
}


import java.io.*; 
import java.net.*; 

class TCPServer { 

  public static void main(String argv[]) throws Exception 
    { 
      String clientSentence; 
      String sentence; 

    BufferedReader inFromUser = 
          new BufferedReader(new InputStreamReader(System.in));

      ServerSocket welcomeSocket = new ServerSocket(6789); 

      while(true) { 

            Socket connectionSocket = welcomeSocket.accept(); 

           BufferedReader inFromClient = 
              new BufferedReader(new
              InputStreamReader(connectionSocket.getInputStream()));




           DataOutputStream outToClient =
             new DataOutputStream(connectionSocket.getOutputStream());

           clientSentence = inFromClient.readLine();
System.out.println("FROM CLIENT: " + clientSentence);

           //capitalizedSentence = clientSentence.toUpperCase() + '\n';
           sentence = inFromUser.readLine();
           outToClient.writeBytes(sentence);
       }
   }
}

何か助けはありますか?:)

4

1 に答える 1

1

あなたはすでに1行書いています。「quit」に別の文字列を記述し、読み取りおよび close() 時にこの文字列を確認します。

プログラムが何をしているのか理解できない場合は、デバッガを使用してください。それがその目的です。

于 2013-09-17T22:17:30.817 に答える