48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
package com.inmind.threads_upload05;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.net.Socket;
|
|
|
|
/*
|
|
文件上传客户端的实现步骤:
|
|
1.创建字节输入流读取图片的字节数据
|
|
2.创建客户端对象指定服务器的IP和端口
|
|
3.获取客户端的字节输出流,将图片的字节数据边读边写,作为请求数据,发送给服务器
|
|
4.获取客户端的字节输入流,接收服务器的响应数据
|
|
5.资源释放
|
|
*/
|
|
public class TcpUploadClientDemo07 {
|
|
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();
|
|
}
|
|
|
|
|
|
|
|
}
|