TCPプロトコル:クライアントとサービス側の一問一答チャット

5515 ワード

需要:クライアントとサービス側が一問一答してチャットする
1.クライアントプログラムコード:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;

/* 1.    BuffrerdReader readline       \r
。 2. flush 。 */
// public class ChatClient { public static void main(String[] args) throws IOException { // tcp Socket socket = new Socket(InetAddress.getLocalHost(),9090); // socket 。 OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream()); // socket BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // , BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in)); String line = null; // , while((line = keyReader.readLine())!=null){ socketOut.write(line+"\r
"
); // socketOut.flush(); // line = socketReader.readLine(); System.out.println(" :"+line); } // socket.close(); } }

2.サービス側コード:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;


/*        */
public class ChatServer {


    public static void main(String[] args) throws IOException {
        //  tcp    
        ServerSocket serverSocket = new ServerSocket(9090);
        //        ,    SOcket
        Socket socket = serverSocket.accept();
        //accept()                       ,          ,       。
        //   Socket      
        BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        //   Socket     
        OutputStreamWriter socketOut =  new OutputStreamWriter(socket.getOutputStream());

        //          
        BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));


        //        
        String line = null;
        while((line = socketReader.readLine())!=null){
            System.out.println("         :"+ line);

            System.out.println("            :");
            line = keyReader.readLine();
            socketOut.write(line+"\r
"
); socketOut.flush(); } // serverSocket.close(); } }