Реалізую на java закачування файлів на FTP-сервер і відповідно докачку, якщо раптом з'єднання було обірвано. Ось лог з FTP сервера. STOR The.mp4 відправляє файл, потім обривається зв'язок, і швидко відновлюється, до того як пройде таймаут (хвилини 2) З повторної відправкою вивалюється помилка:
550 can not access file
Виходить в такому випадку? ми ніяк не зможемо дописати файл і потрібно чекати, коли то з'єднання припинитися? Чи є можливість це обійти?
Подивився лог. Хочу уточнити. @imholynx, як Ви думаєте, при обриві зв'язку з'єднання в Passive Mode c 192.168.0.156. за яким послали STOR The.mp4 розірвалося. Чи ні, але з якоїсь причини процес встановив це з'єднання перестав передавати дані, але close не робив. Якщо можна про архітектуру Вашої системи детальніше. - avp 12 Квітня '12 о 21:32
Докачка у мене реалізована. Все працює, якщо повторне закачування на сервер починається після тайм-ауту. Інакше сервер не дає повторно залити файл, так як попереднє з'єднання відкрито і по ньому може бути змінений файл. З точки зору сервера все правильно. Може є варіант після з'єднання, через той же порт що і минулого разу послати повідомлення на відключення? - imholynx 10 Квітня '12 о 15:30
@imholynx Це вже цікаво. Через той же порт (який?). У тій же послідовності numb / acq (див. Tcp). І як це реалізувати? Іншими словами - зімітувати тільки що розірване (з боку клієнта) з'єднання. Ось так і поповнюються ряди кібервзломщіков. - alexlz 13 Квітня '12 в 3:36