У меня есть учебный проект, где я должен сделать приложение для Android, чтобы реализовать дистанционное совместное использование файлов P2P на основе расстояния. В этом задействованы три устройства: одно - это устройство для запроса файла (скажем, A), а два устройства имеют файл (скажем, B & C). Устройство A следует загрузить с устройства B или C, которое ближе всего к нему (скажем, B ближе). Всякий раз, когда B удаляется от A, так что его расстояние от A больше, чем d (A, C), A должен подключиться к C и возобновить загрузку там, где он отключился от B. До сих пор я могу реализовать дистанционное совместное использование файлов часть (путем установки порогов расстояния). Но я понятия не имею, как реализовать возобновление загрузки.Android Wifi Direct - удаленный доступ к файлу P2P
1
A
ответ
0
Смотрите этот ответ: Implement pause/resume in file downloading
Он предназначен для загрузки с помощью HTTP, но вы можете использовать те же принципы и изменить его в соответствии с случаем использования.
В принципе, вам нужно отслеживать, сколько байтов вы уже прочитали. Когда вы подключаетесь к новому источнику загрузки, приостановите загрузку и отправьте текущий счетчик байтов на новое устройство. Это устройство может затем ответить, начиная с соответствующей точки, и передать оставшуюся часть байтов.
Возможно, вы захотите использовать RandomAccessFile, чтобы разрешить поиск позиций байтов во время операций.
Спасибо, Джастин. Это звучит хорошо. Я попытаюсь его реализовать. – user2958428