Python/Скручивать - Фрагментация пакетов TCP?

Решено (благодаря предложению @Liam):

Это был вопрос нескольких http-запросов к моему серверу.

5
задан ryeguy 20 January 2009 в 04:38
поделиться

3 ответа

В dataReceived методе Вы возвращаете данные как строку неопределенной длины, означающей, что это может быть целое сообщение в Вашем протоколе, или это может только быть часть сообщения что некоторый 'клиент', отправленный Вам. Необходимо будет осмотреть данные, чтобы видеть, включают ли они целое сообщение в протоколе.

Я в настоящее время использую Скрученный на одном из моих проектов реализовать протокол и решил использовать модуль структуры для упаковывания/распаковывания моих данных. Протокол, который я реализую, имеет фиксированный размер заголовка, таким образом, я не создаю сообщений, пока я не считал, по крайней мере, сумму HEADER_SIZE байтов. Общий размер сообщения объявляется в этой части данных заголовка.

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

6
ответ дан 18 December 2019 в 13:20
поделиться

Вы также можете использовать протокол LineReceiver

2
ответ дан 18 December 2019 в 13:20
поделиться

При контакте с TCP необходимо действительно забыть все понятие 'пакетов'. TCP является потоковым протоколом - Вы передаете потоком данные в и потоки данных другая сторона. После того как данные отправляются, позволяется прибыть в столько или так мало блоков это хочет, пока данные, все прибывает в правильный порядок. Необходимо будет вручную сделать определение границ как с другими языками, с полем длины, или полем типа сообщения или специальным символом-разделителем, и т.д.

6
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: