Решено (благодаря предложению @Liam):
Это был вопрос нескольких http-запросов к моему серверу.
В dataReceived методе Вы возвращаете данные как строку неопределенной длины, означающей, что это может быть целое сообщение в Вашем протоколе, или это может только быть часть сообщения что некоторый 'клиент', отправленный Вам. Необходимо будет осмотреть данные, чтобы видеть, включают ли они целое сообщение в протоколе.
Я в настоящее время использую Скрученный на одном из моих проектов реализовать протокол и решил использовать модуль структуры для упаковывания/распаковывания моих данных. Протокол, который я реализую, имеет фиксированный размер заголовка, таким образом, я не создаю сообщений, пока я не считал, по крайней мере, сумму HEADER_SIZE байтов. Общий размер сообщения объявляется в этой части данных заголовка.
Я предполагаю, что Вы не должны действительно определять длину сообщения как часть Вашего протокола, но это помогает. Если бы Вы не определили тот, то у Вас должен был бы быть специальный разделитель, который определяет, когда сообщение начинает/заканчивает. Вид того, как протокол FIX использует байт SOH для разграничивания полей. Хотя это действительно имеет обязательное поле, которое говорит Вам, какой длины сообщение (просто не, сколько полей находится в сообщении).
При контакте с TCP необходимо действительно забыть все понятие 'пакетов'. TCP является потоковым протоколом - Вы передаете потоком данные в и потоки данных другая сторона. После того как данные отправляются, позволяется прибыть в столько или так мало блоков это хочет, пока данные, все прибывает в правильный порядок. Необходимо будет вручную сделать определение границ как с другими языками, с полем длины, или полем типа сообщения или специальным символом-разделителем, и т.д.