Здравствуйте, Alexey Voytsehovich, Вы писали:
AV>Дано: необходимо переслать с клиента на сервер большой обьем данных (не хотелось бы ограничивать себя), с получением от сервера обратно подтверждения о получении данных.
AV>Что есть. Есть ICS библиотека асинхронных сокетов, у которых есть send и recv (упрощенно).
Правильно, зачем изобретать велосипед, когда все уже изобретено до нас
Обратимся к мировой практике.
Допустим есть сайт, на нем есть гигабайтный файлик. Нужно его скачать.
Как обычно решают такую задачу? Точнее каковы способы ее решения?
1. Качать Ыксплорером
Обрыв связи — и перезакачивать все заново.
Это обычный TCP-стриминг.
2. Качать Оперой/Огнелисом.
При обрыве связи, есть возможность возобновления закачки.
Это более интеллектуальная передача контента, с возможностью его "дособирания" по кусочкам
3. Качать даунлоадменеджером.
Многопоточная закачка, сразу нескольких кусков контента.
Максимальная производительность — если пакет от одного чанка где-то и застрял, то освободившуюся нишу в ширине канале займет пакет из другого чанка.
Это более продвинутая разновидность второго способа.
=================================================================
Навскидку, мой mindflow:
Для обеспечения надежности нужно каким-то образом возобновлять коннект. Предположим что связь осуществляется по принципу как в HTTP — на каждый запрос, должен быть ответ.
У каждой пары Request&Response должен быть уникальный ID — для запроса и ответа. RequestID и ResponseID.
При обрыве связи инициирующая сторона должна переконнектится и:
1. Если она передавала данные, то она должна спросить у другой стороны сколько данных та получила(по ID), и возобновить передачу с места обрыва
2. Если принимала данные, то также само: переконнектится, сказать что мне нужны данные для такого-то запроса(ID), с такого-то места
На каждой стороне должен быть таймаут на время жизни запроса.
Например если клиент при заборе данных с сервера, оборвался, и не переконнектился в течении timeout, то буффер (кеш ответа) на сервере очищается.
Как-то где-то так,
а сейчас спать!

хронический недосып, это очень и очень плохо...