Кроме того, что @John сказал о вызове Flush, ваш код выглядит хорошо.
Вы говорите, что отправляете несколько фрагментов данных FrameClass, тогда код должен работать, отправляя только один фрагмент данных.
Если вам нужно отправить несколько объектов данных, то вы не можете отправить их все за один раз, иначе процесс десериализации наткнется на данные.
Вы можете настроить связь между сервером и клиентом, чтобы сервер знал, что он получает.
клиент: у меня есть данные
Сервер: хорошо, я готов, отправьте его
клиент: отправляет
Сервер: завершена обработка
повторить процесс ...