クライアントとサーバ端との通信をsocketで実現し、クライアントがデータを送信した後に同じデータを再現できるように要求する。

4964 ワード

クライアントとサーバ側の通信は、クライアントがデータを送信した後に同じデータを返すことができるように要求されます。
分析:
  • サーバ端末は、ServerSocket
  • を使用することができます。
  • クライアントは、ソケットコードを使用して以下のように実現することができる。
    サーバ端コード:
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
    public static void main(String[] args) {
        BufferedReader bReader=null;
        PrintWriter pWriter=null;
        try {
            ServerSocket server = new ServerSocket(2000);
            Socket socket = server.accept();
            //     
            bReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //     
            pWriter = new PrintWriter(socket.getOutputStream(),true);
            //       
            String string= bReader.readLine();
            //           
            pWriter.println(string);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally {
            try {
                bReader.close();
                pWriter.close();
            } catch (Exception e2) {
                // TODO: handle exception
            }
        }
    }
    }
    
    クライアントコード:
    
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    
    public class Client {
        public static void main(String[] args) {
            BufferedReader brc = null;
            PrintWriter pwc = null;
            try {
                Socket socket = new Socket("127.0.0.1",2000);
                brc = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                pwc = new PrintWriter(socket.getOutputStream(),true);
                pwc.println("Hello");
                String sc = null;
                while (true) {
                    sc = brc.readLine();
                    if (sc!=null) {
                        break;
                    }
                }
                System.out.println(sc);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }finally {
                try {
                    brc.close();
                    pwc.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
            }
        }
    
    }