From 6dfd47714d953961febc06b3d67f74a4352b8e59 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Fri, 14 Aug 2026 10:30:54 +0800 Subject: [PATCH] =?UTF-8?q?s-day11-TCP=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/tcp03/TcpClientDemo06.java | 1 + .../src/com/inmind/tcp03/TcpServerDemo07.java | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 s-day11/src/com/inmind/tcp03/TcpServerDemo07.java diff --git a/s-day11/src/com/inmind/tcp03/TcpClientDemo06.java b/s-day11/src/com/inmind/tcp03/TcpClientDemo06.java index 02119dd..b569ee1 100644 --- a/s-day11/src/com/inmind/tcp03/TcpClientDemo06.java +++ b/s-day11/src/com/inmind/tcp03/TcpClientDemo06.java @@ -39,6 +39,7 @@ public class TcpClientDemo06 { //一次读取一个字节数组 byte[] bytes = new byte[1024]; int len; + System.out.println("服务器响应的数据为:"); while ((len = is.read(bytes)) != -1) { System.out.println(new String(bytes,0,len)); } diff --git a/s-day11/src/com/inmind/tcp03/TcpServerDemo07.java b/s-day11/src/com/inmind/tcp03/TcpServerDemo07.java new file mode 100644 index 0000000..0d4afdc --- /dev/null +++ b/s-day11/src/com/inmind/tcp03/TcpServerDemo07.java @@ -0,0 +1,55 @@ +package com.inmind.tcp03; + +import java.io.InputStream; +import java.io.OutputStream; +import java.net.ServerSocket; +import java.net.Socket; + +/* +TCP服务器端代码的实现 + 在java中使用类ServerSocket表示服务器 + + 构造方法: + ServerSocket(int port) 创建绑定到指定端口的服务器套接字。 + 参数port:服务器软件的端口号 + + 常用方法: + Socket accept() 接收客户端的请求,还将客户端的请求数据封装到服务器的Socket对象返回值中 + InetAddress getInetAddress() 返回套接字所连接的地址。 + InputStream getInputStream() 返回此套接字的输入流.(接收请求数据的) + OutputStream getOutputStream() 返回此套接字的输出流。 (发送响应数据) + void close() 关闭此套接字。 + 服务器的实现步骤: + 1.创建服务器对象 + 2.接收客户端请求 + 3.获取请求数据 + 4.业务逻辑代码 + 5.发送响应数据 + 6.释放资源 + */ +public class TcpServerDemo07 { + public static void main(String[] args) throws Exception { + //1.创建服务器对象 + ServerSocket serverSocket = new ServerSocket(10024); + //2.接收客户端请求 + Socket socket = serverSocket.accept();//阻塞的方法,等待客户端发来请求 + System.out.println(socket.getInetAddress());//获取客户端的ip地址 + //3.获取请求数据 + InputStream is = socket.getInputStream(); + //一次读取一个字节数组 + byte[] bytes = new byte[1024]; + int len; + System.out.println("客户端请求数据为:"); + while ((len = is.read(bytes)) != -1) { + System.out.println(new String(bytes,0,len));//请求数据的展示 + } + //4.业务逻辑代码 + String result = "www.taobao.com";//要响应的数据 + //5.发送响应数据 + OutputStream os = socket.getOutputStream(); + os.write(result.getBytes()); + //6.释放资源 + socket.close(); + serverSocket.close(); + } +}