JAVA文件发送系统

时间:2014-11-09 09:27:48

标签: java lan

我正在尝试创建一个程序,可以将文件发送到局域网上的另一台计算机,这个局域网中有10台计算机,所以我想将文件发送到特定的计算机。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

这可以通过多种方式完成,让我们举几个例子:

  • 通过FTP
  • 通过SFTP
  • 通过网络安装
  • SCP over SSH
  • 通过消息总线系统(可能是最复杂的需求。

对于所有这些示例,在Google上搜索时会有很多很好的示例和文档。

您需要定义一个更清晰的问题陈述,为什么需要以编程方式(如果这是您要求的)以及使用哪种语言/哪种技术来完成。

答案 1 :(得分:1)

最直接的方式就是这样。但是,确实有更有效的方法。

发送机必须有这个。

Socket socket = new Socket("ipaddress_of_machine", SHARED_PORT);
OutputStream oStream = new BufferedOutputStream(socket.getOutputStream());
File file = new File("Path_to_File");
InputStream iStream = new FileInputStream(file);
byte[] buffer = new byte[8192];
for(int readCount = iStream.read(buffer); readCount != -1; readCount = iStream.read(buffer)) {
   oStream.write(buffer, 0, readCount);
}
oStream.flush();
oStream.close();
iStream.close();

接收机必须有这样的东西。

ServerSocket serverSocket = new ServerSocket(SHARED_PORT);
Socket socket = serverSocket.accept();
InputStream iStream = socket.getInputStream();
FileOutputStream oStream = new SocketOutputStream("filename");
byte[] buffer = new byte[8921];
for(int readCount = iStream.read(buffer); readCount != -1; readCount = iStream.read(buffer)) {
       oStream.write(buffer, 0, readCount);
    }
    oStream.flush();
    oStream.getFD().sync();
    oStream.close();
    iStream.close();