【发布时间】:2015-05-14 04:43:11
【问题描述】:
问题:服务器请求的我的文件未启动。
好的,我已经编写了一个服务器/客户端应用程序,但问题是当我从服务器请求文件时,它会传输到客户端,但我注意到我需要手动刷新目录才能获取文件位于路径或目录中。所以这么说,我觉得这就是为什么我的代码在请求文件时没有启动的原因。
我在刚被请求后从客户端启动文件的方法。
下面是我的代码:
public static void receiveFile(String fileName) {
try {
int bytesRead;
InputStream in = sock.getInputStream();
DataInputStream clientData = new DataInputStream(in);
fileName = clientData.readUTF();
OutputStream output = new FileOutputStream((fileName));//need to state a repository
long size = clientData.readLong();
byte[] buffer = new byte[1024];
while (size > 0 && (bytesRead = clientData.read(buffer, 0, (int) Math.min(buffer.length, size))) != -1) {
output.write(buffer, 0, bytesRead);
size -= bytesRead;
}
output.close();
in.close();
File file = new File(fileName);
Desktop.getDesktop().open(file);
//System.out.println("File "+fileName+" received from Server.");
} catch (IOException ex) {
//Logger.getLogger(CLIENTConnection.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
}
请你看看是不是告诉我你认为我做错了什么? 服务器代码:
【问题讨论】:
-
好吧,也许你的
receiveFile函数正在抛出异常,而当你默默地吞下它时,你永远不会知道。 -
请同时粘贴客户端代码..
-
也粘贴服务器端代码
-
请问是不是因为我没有将文件写入特定文件夹,因为我只编写了桌面代码以从项目的根目录启动文件,但当我添加时文件到它所做的资源目录。我想知道我是否要将文件从流写入指定的文件夹资源并尝试启动它服务器代码会发生什么
-
好吧,这是我的错,我注意到正在传递的文件只有 0 个字节,我找到了它。此外,我还有另一个问题,它没有启动 pdf 应用程序,但它在 pdf 应用程序中加载了它,所以说我打开了一些其他文件,你会在 pdf 应用程序中看到我请求的文件,但我需要在传输后调用它。请记住,我解决了发送并加载到相应文件格式的应用程序的部分。应用程序文件无法启动
标签: java sockets oop client-server server