Все что я хотел услышать, сказал MoKa. TCPlength тоже логировалось, но раньше, потом убрал за ненадобностью. Когда пропадает те самые 4 байта, тогда TCPlength принимает значение первых 4-х байт тела самого сообщения - а первые 4 байта - символы, то есть если их перевести в integer, получится всегда больше 1000, на что и стояла последующая проверка. Я об этом уже писал.
Ты сталкивался что пропадают конкретные 4 байта сообщения? Причем их нет в предыдущем сообщении, и нет нигде - просто не пришли, как будто их и не отправляли. Это не те случаи, когда пришло еще не все, что должно было, и не те, когда сообщение читается неправильно. Это конкретный, очень специфический случай...
На самом деле, в данном случае надо написать кусок клиента на пурике, и посмотреть как он будет себя вести.
Ну уж если не выйдет из меня программиста, то все - пойду повешусь на люстре, смысла жизни нет
п.с. за старание помочь конечно спасибо, но по-моему, мы просто неправильно друг друга понимаем...