java程序设计一个服务器端和客户端完成文件下载功能?
以下是一个简单的Java程序,实现了服务器端和客户端之间的文件下载功能。
服务器端代码:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) {
int port = 12345;
try {
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server started. Listening on port " + port);
while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket.getInetAddress().getHostAddress());
OutputStream outputStream = clientSocket.getOutputStream();
FileInputStream fileInputStream = new FileInputStream("path_to_file/file_to_download.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
fileInputStream.close();
outputStream.close();
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码:
import java.io.*;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) {
String serverAddress = "127.0.0.1";
int port = 12345;
try {
Socket socket = new Socket(serverAddress, port);
System.out.println("Connected to server: " + serverAddress);
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("path_to_save_file/downloaded_file.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
fileOutputStream.close();
inputStream.close();
socket.close();
System.out.println("File downloaded successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在服务器端代码中,需要将path_to_file/file_to_download.txt替换为你想要下载的文件的路径。在客户端代码中,需要将path_to_save_file/downloaded_file.txt替换为你想要保存下载文件的路径。
这个程序会将服务器端的文件发送给客户端,并保存到客户端指定的路径中
原文地址: http://www.cveoy.top/t/topic/iGJ3 著作权归作者所有。请勿转载和采集!