JAVA——客户端键盘录入,服务端输出到控制台

132 阅读1分钟

需求

客户端键盘录入,服务端输出到控制台

Sever

public class Sever01{
    public static void main(String[] args){
    //1,建立TCP服务端并且绑定端头,监听端口传来的请求
    ServerSocket server = new ServerSocket(1025);//端口号:1025
    //2,通过Server获取一个来自客户端的请求,建立了TCP连接
    Socket socket = server.accept();//socket负责一个来自客户端的套接字
    //3,读取客户端传来的数据
    //socket.getInputStream();//代表服务器获取客户端传来的数据流,字节
    //转成字符,加缓冲
    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    //socket.getOutputStream();//代表服务器向客户端传出的数据流
     BufferedWriter bw = new BufferedWriter(new OutputStreamReader(socket.getOutputStream()));
     
     //4,从客户端读取数据br
     String line = null;
     while((line=br.readLine())!=null){
         System.out.print(line);
     }
     socket.close();//br,bw是从socket来的,只需要管socket。
    }
}

Client

public class Client01{
    public static void main(String[] args){
        //1,创建一个TCP客户端,指定目标IP地址以及端口号
        //创建好就已经连接上了服务端
        Socket client = new Socket("172.16.80.51","1025");//创建一个套接字.IP地址,端口号
        //2,
        client.getInputStream();//客户端获取服务端数据的输入流
        client.getOutputStream();//客户端向服务端数据传输的输出流
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
        //从客户端控制台读取数据
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line=null;
         //从控制台读取数据
        while((line=br.readLine()).equals("886")){
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        client.close();
        br.close();
    }
}