diff --git a/1.jpg b/1.jpg new file mode 100644 index 0000000..21ade94 Binary files /dev/null and b/1.jpg differ diff --git a/javaSE-day11/src/com/inmind/tcp03/TcpClientDemo04.java b/javaSE-day11/src/com/inmind/tcp03/TcpClientDemo04.java index 468cf37..2be69f4 100644 --- a/javaSE-day11/src/com/inmind/tcp03/TcpClientDemo04.java +++ b/javaSE-day11/src/com/inmind/tcp03/TcpClientDemo04.java @@ -30,14 +30,11 @@ public class TcpClientDemo04 { //1.创建客户端对象 //Socket(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。 Socket client = new Socket("192.168.22.51", 10001); - //2.获取字节输出流,发送请求数据 OutputStream os = client.getOutputStream(); os.write("淘宝的官网".getBytes()); - //注意:当发送完毕请求数据后,要设置结束的标记,否则服务器会长时间等待客户端的请求数据 client.shutdownOutput(); - //3.获取字节输入流,接收响应数据 InputStream is = client.getInputStream(); //一次读字节数组的方式来读取响应数据 diff --git a/javaSE-day11/src/com/inmind/tcp03/TcpServerDemo04.java b/javaSE-day11/src/com/inmind/tcp03/TcpServerDemo04.java index d4dad3a..126f0b9 100644 --- a/javaSE-day11/src/com/inmind/tcp03/TcpServerDemo04.java +++ b/javaSE-day11/src/com/inmind/tcp03/TcpServerDemo04.java @@ -34,11 +34,9 @@ public class TcpServerDemo04 { //ServerSocket(int port) 创建绑定到指定端口的服务器套接字。 ServerSocket server = new ServerSocket(10001); System.out.println("服务启动了"); - //2.接收客户端请求 //Socket accept() 侦听要连接到客户端请求并接受它。 Socket clientSocket = server.accept();//阻塞方法 - //3.获取请求数据 InputStream is = clientSocket.getInputStream(); byte[] buf = new byte[1024]; @@ -49,11 +47,9 @@ public class TcpServerDemo04 { } //4.业务逻辑代码 String result = "www.taobao.com"; - //5.发送响应数据 OutputStream os = clientSocket.getOutputStream(); os.write(result.getBytes()); - //6.释放资源 clientSocket.close(); server.close(); diff --git a/javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java b/javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java new file mode 100644 index 0000000..6a0e3a9 --- /dev/null +++ b/javaSE-day11/src/com/inmind/tcp03/TcpUploadDemo05.java @@ -0,0 +1,44 @@ +package com.inmind.tcp03; + +import java.io.*; +import java.net.Socket; + +/* +文件上传客户端的实现步骤: +1.创建字节输入流读取图片的字节数据 +2.创建客户端对象指定服务器的IP和端口 +3.获取客户端的字节输出流,将图片的字节数据边读边写,作为请求数据,发送给服务器 +4.获取客户端的字节输入流,接收服务器的响应数据 +5.资源释放 + */ +public class TcpUploadDemo05 { + public static void main(String[] args) throws IOException { + //1.创建字节输入流读取图片的字节数据 + FileInputStream fis = new FileInputStream("1.jpg"); + //2.创建客户端对象指定服务器的IP和端口 + Socket client = new Socket("192.168.22.51", 10002); + OutputStream os = client.getOutputStream();//发送请求数据 + byte[] buf = new byte[1024]; + int len; + + //3.获取客户端的字节输出流,将图片的字节数据边读边写,作为请求数据,发送给服务器 + while ((len = fis.read(buf)) != -1) { + os.write(buf,0,len); + } + //通知服务端,请求数据发送结束了 + fis.close(); + System.out.println("客户端上传了图片"); + client.shutdownOutput(); + //4.获取客户端的字节输入流,接收服务器的响应数据 + InputStream is = client.getInputStream(); + while ((len = is.read(buf)) != -1) { + System.out.println(new String(buf, 0, len)); + } + System.out.println("客户端接收到了响应的结果"); + //5.资源释放 + client.close(); + } + + + +}