Java 基于Socket的网络编程

 

  1. 基于Socket完成客户端与服务器端之间端对端的通信。

 

public class Client {

   public static void main(String[] args) {

      try {

         // 1.建立与服务端的Socket连接

         Socket socket = new Socket("127.0.0.1", 9999);

         // 2.socket管道中得到一个字节输出流

         OutputStream os = socket.getOutputStream();

        

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

        

         // 3.把字节输出流包装成一个打印流

         PrintWriter pw = new PrintWriter(os);

         while(true){

            System.out.print("请输入:");

            // 发送一行消息给服务端

            pw.println(br.readLine());

            pw.flush();

         }

      } catch (Exception e) {

         e.printStackTrace();

      }

   }

}

public class Server {

   public static void main(String[] args) {

      try {

         System.out.println("--服务端启动--");

         // 1.定义一个ServerSocket用于接收客户端的连接

         // 9999 端口是用于标记服务端的,以便客户端可以找到服务端

         // 0 - 65539

         ServerSocket serverSocket = new ServerSocket(9999);

         // 2.开始接收客户端的Socket连接

         // 这行代码会处于等待状态,等待客户端的连接

         Socket socket = serverSocket.accept();

         // 3.socket管道中得到一个字节输入流 ,因为接收消息是把消息流进来

         InputStream is = socket.getInputStream();

         // 4.从字节输入流中获取客户端socket发来的消息

         Reader fr = new InputStreamReader(is);

         BufferedReader br = new BufferedReader(fr);

         // 5.读一行消息

         String line = null;

 

         while ((line = br.readLine()) != null) {

            System.out.println("收到客户端消息:" + line);

         }

 

      } catch (Exception e) {

         e.printStackTrace();

      }

   }

}

 

猜你喜欢

转载自blog.csdn.net/weixin_42228939/article/details/81158993