Это уже сложнее. Если в первом случае были просто команды, то теперь
1) нужно придумать более сложный протокол, чтобы отличать команды от файлов (а также параметры - куда файл сохранять, его размер)
2) поскольку при передачи больших данных они выдаются порциями событием onReceive, нужно уметь накапливать данные.
Примерный алгоритм:
1) Отправка файла (после соответствующих команд) - как в примере с помощью конвертора
2) Прием файла после получения команды, что сейчас отправляется файл - с помощью FileStream и модифицированного DataToFile (стандартный не умеет писать в файл без доп. разделителей).
Более конкретно ничего не предложу. Попробуй сам подумай, исходя из следующего: любые отправляемые компонентами данные на принимающей стороне могут быть выданы любым количеством событий onReceive. Например, при посылке 200 байт, первое событие может выдать 20, второе - 180 (реально, макс. размер посылки где-то 8КБ, но полагаться не стоит). То-есть, систему команд нужно придумывать таким образом, чтобы при её разбиении принимающая сторона могла дождаться полной команды из нескольких onReceive путем накопления, например, до обнаружения некоего разделителя.
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|