阅读量:2
要将文件传输到另一个服务器,你可以使用Java中的Socket类进行网络通信。以下是一个示例代码,展示了如何使用Socket传输文件:
import java.io.*; import java.net.Socket; public class FileTransferClient { public static void main(String[] args) { String serverIP = "目标服务器IP地址"; int serverPort = 1234; String filePath = "要传输的文件路径"; try { Socket socket = new Socket(serverIP, serverPort); // 获取输入流 FileInputStream fileInputStream = new FileInputStream(filePath); BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); // 获取输出流 OutputStream outputStream = socket.getOutputStream(); // 创建缓冲区 byte[] buffer = new byte[1024]; int bytesRead; // 从输入流读取数据,并写入输出流 while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } // 关闭流 bufferedInputStream.close(); outputStream.close(); socket.close(); System.out.println("文件传输完成"); } catch (IOException e) { e.printStackTrace(); } } }
在上面的示例代码中,你需要替换serverIP
为目标服务器的IP地址,serverPort
为目标服务器的端口号,以及filePath
为要传输的文件的路径。
然后在目标服务器上,你可以使用类似的代码来接收文件:
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class FileTransferServer { public static void main(String[] args) { int serverPort = 1234; String savePath = "保存文件的路径"; try { ServerSocket serverSocket = new ServerSocket(serverPort); System.out.println("服务器已启动,等待连接..."); Socket socket = serverSocket.accept(); // 获取输入流 InputStream inputStream = socket.getInputStream(); // 创建输出流 FileOutputStream fileOutputStream = new FileOutputStream(savePath); // 创建缓冲区 byte[] buffer = new byte[1024]; int bytesRead; // 从输入流读取数据,并写入输出流 while ((bytesRead = inputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, bytesRead); } // 关闭流 fileOutputStream.close(); inputStream.close(); socket.close(); serverSocket.close(); System.out.println("文件接收完成"); } catch (IOException e) { e.printStackTrace(); } } }
在上面的示例代码中,你需要替换serverPort
为服务器绑定的端口号,以及savePath
为文件保存的路径。
这样,当你运行FileTransferClient
时,它将会将文件传输到目标服务器上,目标服务器上的FileTransferServer
会接收文件并保存到指定的路径。