实现客户端向服务器发送文件可以通过使用Java的Socket编程实现。如下是实现步骤的完整攻略:
- 建立Socket连接:服务器端的Socket监听客户端的请求,客户端需要使用Socket来连接服务器。
ServerSocket server = new ServerSocket(12345);
- 建立时Socket连接后客户端向服务器传输文件,在客户端中使用FileInputStream读取待传输的文件数据,通过Socket输出流将文件数据写入到OutputStream中,发送给服务器。
// 客户端发送文件
String filePath = "D:/test.txt";
File file = new File(filePath);
// 建立Socket连接
Socket socket = new Socket("localhost", 12345);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 获取输入流
FileInputStream fileInputStream = new FileInputStream(file);
// 文件缓存区
byte[] buffer = new byte[1024];
int len;
// 读取文件,写入到输出流中
while ((len = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
fileInputStream.close();
outputStream.close();
socket.close();
- 在服务器端接收客户端传输的文件,使用ServerSocket监听客户端的请求,一旦有任何连接,将流(input)放入ServerSocket中,操作完之后关闭流(input)并且关闭ServerSocket。
// 服务器端接收文件
ServerSocket server = new ServerSocket(12345);
// 等待客户端连接
Socket socket = server.accept();
// 获取输入流
InputStream input = socket.getInputStream();
// 将数据写入到文件中
File dstFile = new File("D:/test2.txt");
FileOutputStream fos = new FileOutputStream(dstFile);
int len;
byte[] buffer = new byte[1024];
while ((len = input.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
input.close();
socket.close();
server.close();
通过上面的代码示例,完成了客户端向服务端发送文件的操作,并在服务端接收到文件并保存。具体步骤如下:
1.启动服务端程序,建立ServerSocket,监听12345端口;
2.启动客户端程序,调用Socket连接127.0.0.1(即服务端地址)的12345端口,将test.txt文件内容写入到Socket输出流中(Socket在本地与ServerSocket建立Socket连接)
3.ServerSocket接受客户端请求,从ServerSocket中拿到流(input),将数据写入到文件中。根据上面的示例,文件被接收保存在了D:/test2.txt位置。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现客户端向服务器发送文件 - Python技术站