我需要一个简单的应用程序,最好是跨平台的应用程序,该应用程序可以在两台计算机之间发送文件。
它只需要接受并发送文件,并显示进度条即可。我可以使用哪些应用程序或如何编写一个应用程序?
发送和接收文件
文件的发送和接收基本上分为两个简单的代码段。
接收代码:
ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);
Socket connection = serverSoc.accept();
// code to read from connection.getInputStream();
发送代码:
File fileToSend;
InputStream fileStream = new BufferedInputStream(fileToSend);
Socket connection = new Socket(CONNECTION_ADDRESS, LISTENING_PORT);
OutputStream out = connection.getOutputStream();
// my method to move data from the file inputstream to the output stream of the socket
copyStream(fileStream, out);
当他们想要发送文件时,发送代码段将在正在发送代码的计算机上运行。
接收代码需要放入一个循环中,以便每次有人想要连接到服务器时,服务器都可以处理该请求,然后返回到在serverSoc.accept()上等待。
为了允许在两台计算机之间发送文件,每台计算机将需要运行服务器(接收代码)以侦听传入的文件,并且当它们要发送文件时,它们都需要运行发送代码。
进度条
在JProgressBar
Swing中是很容易的使用。但是,使其正常工作并显示文件传输的当前进度稍微困难一些。
要使进度条显示在表单上,仅涉及将其放到上JFrame
,也许还要进行设置,setIndeterminate(false)
以表明程序在运行。
要正确实施进度条,您需要创建自己的SwingWorker
。Java教程在并发课程中有一个很好的例子。
但是,这本身就是一个相当困难的问题。如果您需要更多帮助,我建议您自己问这个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句