From 4d810fc5b9659f606088c60a487cba0861d85e7d Mon Sep 17 00:00:00 2001 From: bingor Date: Wed, 19 Oct 2022 18:08:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E7=BB=9C=E7=BC=96=E7=A8=8B=E5=9F=BA?= =?UTF-8?q?=E7=A1=80-bio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/msb/io/bio/Client.java | 35 +++++++++++++++++ src/main/java/com/msb/io/bio/Server.java | 49 ++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/main/java/com/msb/io/bio/Client.java create mode 100644 src/main/java/com/msb/io/bio/Server.java diff --git a/src/main/java/com/msb/io/bio/Client.java b/src/main/java/com/msb/io/bio/Client.java new file mode 100644 index 0000000..ee260da --- /dev/null +++ b/src/main/java/com/msb/io/bio/Client.java @@ -0,0 +1,35 @@ +package com.msb.io.bio;/** + * @Author bingor + * @Date 2022/10/19 14:59 + * @Description: com.msb.bio + * @Version: 1.0 + */ + +import java.io.IOException; +import java.io.OutputStream; +import java.net.Socket; + +/** + *@ClassName Client + *@Description TODO + *@Author bingor + *@Date 2022/10/19 14:59 + *@Version 3.0 + */ +public class Client { + public static void main(String[] args) { + try { + Socket socket = new Socket("127.0.0.1", 8888); + OutputStream os = socket.getOutputStream(); + os.write("hello server".getBytes()); + os.flush(); + System.out.println("write over, waiting for msg back..."); + byte[] bytes = new byte[1024]; + int len = socket.getInputStream().read(bytes); + System.out.println(new String(bytes, 0, len)); + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/msb/io/bio/Server.java b/src/main/java/com/msb/io/bio/Server.java new file mode 100644 index 0000000..58368ea --- /dev/null +++ b/src/main/java/com/msb/io/bio/Server.java @@ -0,0 +1,49 @@ +package com.msb.io.bio;/** + * @Author bingor + * @Date 2022/10/19 15:11 + * @Description: com.msb.bio + * @Version: 1.0 + */ + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.net.Socket; + +/** + *@ClassName Server + *@Description TODO + *@Author bingor + *@Date 2022/10/19 15:11 + *@Version 3.0 + */ +public class Server { + public static void main(String[] args) { + try { + ServerSocket server = new ServerSocket(); + server.bind(new InetSocketAddress("127.0.0.1", 8888)); + while (true) { + Socket socket = server.accept(); //阻塞方法 + + new Thread(() -> { + handle(socket); + }).start(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void handle(Socket socket) { + byte[] bytes = new byte[1024]; + try { + int len = socket.getInputStream().read(bytes); + System.out.println(new String(bytes, 0, len)); + + socket.getOutputStream().write("hello client".getBytes()); + socket.getOutputStream().flush(); + } catch (IOException e) { + e.printStackTrace(); + } + } +}