【发布时间】:2013-12-20 23:30:17
【问题描述】:
我编写了一个套接字程序,主机将接收文件,客户端将发送(就我而言)。但是,今天当我检查它时,我看到如果我运行主机,没有任何反应。但是当我运行客户端时,服务器端开始提示并要求我发送文件。然后服务器开始将文件发送到我的客户端电脑。 这是代码 服务器端:
ServerSocket servsock = new ServerSocket(50000);
Socket sock = servsock.accept();
File to_b_encf = new File("input");
OutputStream out = sock.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(to_b_encf);
byte[] buffer = new byte[64 * 1024];
int bytesRead = 0;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
if (bytesRead > 0) {
out.write(buffer, 0, bytesRead);
totalSent += bytesRead;
System.out.println("sent " + totalSent);
}
}
sock.close();
servsock.close();
fileInputStream.close();
客户端代码:
Socket sock = new Socket("172.16.27.106", 50000);
InputStream in = sock.getInputStream();
Scanner sc = new Scanner(System.in);
System.out.print("File path: ");
String output = sc.nextLine();
sc.close();
File fileName = new File(output);
fileOutputStream = new FileOutputStream(output);
// sending the actual file
byte[] buffer = new byte[64 * 1024];
bytesRead = 0;
while ((bytesRead = in.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
totalRecieved += bytesRead;
}
sock.close();
fileOutputStream.close();
现在,除了我的文件发送和文件接收有什么问题之外,我还有另一个问题。 我想在没有任何路由器或 LAN 连接的帮助下将文件从一台笔记本电脑发送到另一台笔记本电脑。所以,我想我需要一个特定于应用程序的网络。什么是最佳或安全的特定应用网络? Java 是否为特定于应用程序的网络提供任何库?顺便说一句,我对这个领域一无所知。这不是我目前对该项目的关注。实际上只是为了提个醒。
谢谢。
【问题讨论】:
-
不清楚这样做的目的是什么,你只是想在机器之间移动文件并且碰巧知道java吗?使用 ftp 或 scp 怎么样?
标签: java sockets file-transfer