Как организовать корректный прием блочных данных по сокету?
От: V-ctor  
Дата: 02.09.10 07:38
Оценка:
Вроде задача типовая и решения очевидно , но хотелось бы узнать как тут принято делать

Надо скажем по сети передать кусок данных заведомо больший чем один tcp пакет
как на стороне приема правильно принять в том плане что у меня там идет прием пакаетов и мне надо как-то знать после приема первого надо ждат второй или это все данные.

Вроде можно при передаче конечно вначале длинну всего передаваемого пакета высылать и на приеме ее чухать и по ней ориентироватцо, но может есть какие-то другие общеизвестные приемы?

Входить в цикл и выгребать пока выгребается тоже как-то не очень ибо когда ничего нет , то непонятно, то ли по таймауту завершаем цикл приема ибо это все данные, то ли просто кто-то где-то споткнулся о кабель/образовался шторм в сети/еще какая неразбериха (а у нас в конторе к сожалению такое бывает из-за вечных экспериментов) и мы прсото не получили все что там надо за разумный промежуок времени.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.