将文件从一个主机传输到另一个主机并检查其完整性

时间:2011-11-12 17:13:45

标签: java stream protocols file-transfer

我有一个大学任务来创建服务器 - 客户端对,客户端可以将文件传输到服务器。还应该进行完整性检查,以查看文件是否已损坏。我已经使用DigestInputStreamDigestOutputStream类实现了实际的文件传输,这些类在传输时计算文件的哈希码。现在我的问题是将客户端计算的哈希值发送到服务器,服务器必须将其与服务器计算的哈希值进行比较。我需要一些协议来发送实际的文件数据,它的哈希码和文件名。提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用Socket API实现最简单。

然后您可以执行以下步骤:

  1. 从客户端连接到服务器;
  2. 让客户端发送计算出的哈希值;
  3. 服务器根据计算出的哈希值验证哈希值;
  4. 服务器向客户端发回“成功”消息。
  5. Socket上有很多教程,以及如何设置基本的客户端 - 服务器通信。

答案 1 :(得分:0)

您可以使用DataOutput / InputStream

DataOutput out = ...
String fileName = ...
byte[] bytes = ...
int hash = ...

out.writeUTF(fileName);
out.writeInt(bytes.length);
out.write(bytes);
out.writeInt(hash);
out.flush();