Передача файла с одного хоста на другой и проверка его целостности - PullRequest
1 голос
/ 12 ноября 2011

У меня есть университетское задание для создания пары сервер-клиент, где клиент может передать файл на сервер.Также должна быть проверка целостности, чтобы увидеть, не поврежден ли файл.Я реализовал фактическую передачу файлов, используя классы DigestInputStream и DigestOutputStream, которые вычисляют хэш-код файла во время передачи.Теперь моя проблема состоит в том, чтобы отправить хеш, рассчитанный клиентом, на сервер, где сервер должен сравнить его с хешем, вычисленным сервером.Мне нужна идея какого-то протокола для отправки реальных данных файла, его хэш-кода и имени файла.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 12 ноября 2011

Это, вероятно, проще всего реализовать с помощью Socket API.

Затем вы можете предпринять следующие шаги:

  1. Подключиться к серверу с клиента;
  2. Пусть клиент отправит вычисленный хеш;
  3. Сервер проверяет хеш против его вычисленного;
  4. Сервер отправляет клиенту сообщение об успехе.

В Socket доступно множество руководств и инструкций по настройке базовой связи клиент-сервер.

0 голосов
/ 13 ноября 2011

Вы можете использовать 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();
...