用socket实现客户端与服务器端的通信,要求在客户发送数据后能够回显相同的数据。

问题描述:
用socket实现客户端与服务器端的通信,要求在客户发送数据后能够回显相同的数据。

分析:

  • 服务器端可以使用ServerSocket
  • 客户端可以使用Socket

    代码实现如下:

服务器端代码:


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();
            }

        }
    }

}

你可能感兴趣的:(java)