进阶day11-网络编程_TCP文件上传的客户端实现

This commit is contained in:
2026-03-26 17:10:47 +08:00
parent aab9f96208
commit 4d6715e0ac
4 changed files with 44 additions and 7 deletions

BIN
1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@@ -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();
//一次读字节数组的方式来读取响应数据

View File

@@ -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();

View File

@@ -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();
}
}