题目:将客户端的图片上传到服务器
思路:客户端输出到服务器
服务器读取数据写入文件
在浏览器中保存一张自己喜欢的图片命名为13.jpg 将照片移入idea
写客户端命名为PicClient
package webprogram.client;
import java.io.*;
import java.net.Socket;
/**
* @Auther: bird
* @Date: 2022/4/30 - 04 - 30 - 10:16
* @Description: webprogram.client
* @version: 1.0
*/
public class PicClient {
public static void main(String[] args) throws IOException {
FileInputStream fileIutputStream = new FileInputStream("13.jpg");
//创建Socket对象
Socket socket = new Socket("localhost"/*本地主机*/, 10086);
//从Socket中获取输出流
OutputStream outputStream = socket.getOutputStream();
//写文件数据到服务器端
int read = 0;
while ((read = fileIutputStream.read()) != -1) {
outputStream.write(read);
}
//截断输出流
socket.shutdownOutput();
//读取服务器响应的信息
InputStream inputStream = socket.getInputStream();
//使用DataInputStream包装流
DataInputStream dataInputStream = new DataInputStream(inputStream);
String msg = dataInputStream.readUTF();
System.out.println("服务器响应的信息:" + msg);
socket.shutdownInput();
//关闭资源
dataInputStream.close();
inputStream.close();
outputStream.close();
fileIutputStream.close();
socket.close();
}
}
写服务器命名为PicServer
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @Auther: bird
* @Date: 2022/4/30 - 04 - 30 - 10:31
* @Description: webprogram.server
* @version: 1.0
*/
public class PicServer {
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream = new FileOutputStream("mile.jpg");
//创建ServerSocket 服务端 对象
ServerSocket serverSocket = new ServerSocket(10086);
System.out.println("*******************服务器开启... ...*******************");
//开启监听
Socket server = serverSocket.accept();
//从socket中获取输入流
InputStream inputStream = server.getInputStream();
//读取上传的文件数据,同时写入到服务器端
byte[] buffer = new byte[1024];
int length = 0;
while ((length = inputStream.read(buffer)) !=-1){
fileOutputStream.write(buffer,0,length);
}
server.shutdownInput();
//给客户端响应一条信息
OutputStream outputStream = server.getOutputStream();
//使用DatOutputStream包装流
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("上传成功!");
server.shutdownOutput();
//关闭资源
dataOutputStream.close();
outputStream.close();
inputStream.close();
fileOutputStream.close();
server.close();
serverSocket.close();
}
}
结果如下