diff --git a/javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java b/javaSE-day11/src/com/inmind/tcp03/TcpUploadClientDemo05.java similarity index 97% rename from javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java rename to javaSE-day11/src/com/inmind/tcp03/TcpUploadClientDemo05.java index 6a0e3a9..0317bb4 100644 --- a/javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java +++ b/javaSE-day11/src/com/inmind/tcp03/TcpUploadClientDemo05.java @@ -11,7 +11,7 @@ import java.net.Socket; 4.获取客户端的字节输入流,接收服务器的响应数据 5.资源释放 */ -public class TcpUploadDemo05 { +public class TcpUploadClientDemo05 { public static void main(String[] args) throws IOException { //1.创建字节输入流读取图片的字节数据 FileInputStream fis = new FileInputStream("1.jpg"); diff --git a/javaSE-day11/src/com/inmind/tcp03/TcpUploadServerDemo05.java b/javaSE-day11/src/com/inmind/tcp03/TcpUploadServerDemo05.java new file mode 100644 index 0000000..cadacc8 --- /dev/null +++ b/javaSE-day11/src/com/inmind/tcp03/TcpUploadServerDemo05.java @@ -0,0 +1,45 @@ +package com.inmind.tcp03; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.ServerSocket; +import java.net.Socket; + +/* + 文件上传的服务端的实现步骤: + 1.创建一个服务端对象,接收请求 + 2.获取客户端socket对象的字节输入流,接收请求数据(图片字节数据) + 3.创建字节输出流,边读边写到硬盘中 + 4.获取客户端的socket对象字节输出流,发送响应数据(上传成功) + 5.资源释放 + */ +public class TcpUploadServerDemo05 { + public static void main(String[] args) throws IOException { + //1.创建一个服务端对象,接收请求 + ServerSocket server = new ServerSocket(10002); + System.out.println("服务端启动了"); + Socket clientSocket = server.accept(); + System.out.println(clientSocket.getInetAddress().getHostAddress()); + + //2.获取客户端socket对象的字节输入流,接收请求数据(图片字节数据) + InputStream is = clientSocket.getInputStream(); + byte[] buf = new byte[1024]; + int len; + //3.创建字节输出流,边读边写到硬盘中 + FileOutputStream fos = new FileOutputStream("D:\\io_test\\upload\\a.jpg"); + while ((len = is.read(buf)) != -1) { + fos.write(buf,0,len); + } + fos.close(); + System.out.println("服务器保存了上传的图片"); + //4.获取客户端的socket对象字节输出流,发送响应数据(上传成功) + OutputStream os = clientSocket.getOutputStream(); + os.write("上传成功".getBytes()); + System.out.println("服务器响应了结果给客户端"); + //5.资源释放 + clientSocket.close(); + server.close(); + } +}