Показать сообщение отдельно
Старый 28.02.2012, 22:11   #151
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Ребят вы бы азы хоть немного подучили)))
Нигде ничего не склеивается в какие-то пакеты "побольше".
TCP/IP - это потоковый протокол. Все данные передаются тупо в едином потоке.
Ну а как сказал sko, уже для разделения пакетов на программном уровне, перед началом передаваемой структуры пишется ее размер.

И да, сразу совет. Не считывайте все данные из сокета, как те только туда пришли, т.к. может быть ситуация, что пришла только часть пакета.

Поэтому логика правильного разбора пакетов должна быть такая:
считывается размер пакета из потока. Далее проверяется сколько байт доступно в потоке. Если байт не достаточно, то необходимо ждать, пока придет остальная часть. Далее считывается столько байт, какой размер указан вначале, а опять же не все данные из сокета. Ну и т.д. повторяется...
Aries вне форума   Ответить с цитированием
За это сообщение Aries нажился спасибкой от: