我有一台服务器将请求的文件(从客户端)发送到客户端。我想要做的是,如果服务器端的文件不存在,则打印出来并且两端都有错误。
例如,客户端从服务器请求blahblahblah.txt但服务器没有它。服务器将打印“错误。不存在”,但客户端将打印其“错误。不存在”。
我的文件传输工作完美,但如果有办法处理此错误,那就太棒了。如果在服务器中键入了错误的输入,则使用if语句处理它,但客户端只是等待一个文件(这是有道理的,因为没有发送任何内容)。现在,我在服务器端,
File f = new File("....");
if (!f.exists())
{
System.out.println("error. does not exist");
}
else
{
(send file)
}
不确定如何在客户端处理此问题。任何帮助都会很棒。
答案 0 :(得分:2)
我有个你的想法。 你能做的是创建一个有两个属性的类,第一个是File类型,第二个是Type boolean。当文件存在时,执行myObeject.setFile(f)和smyObject.setFound(true)。您将对象发送给客户端,客户端将看到recievedObject.getFound()等于true,因此他将执行recievedObject.getFile()并获取该文件。否则,如果找不到该文件,则执行myObeject.setFile(null)和smyObject.setFound(false)并发送myObject。当客户端收到对象时,他将检查布尔值并发现它等于false。然后他将显示错误消息而不是执行getFile。如果您愿意,请+1:D
答案 1 :(得分:1)
您可以为您的响应提供语法,其中前3个字节始终表示"状态代码"。如果文件成功找到,前3个字节将为001,然后其余字节将是实际文件。
如果找不到文件,前3个字节将为900,之后响应中将没有其他字节。
这样,服务器总会将某些内容写回客户端(找不到文件,并且在文件读取过程中也会出现意外错误)。