Код выполняется значительно быстрее при выполнении из модуля вместо ленты

Единственное, что гарантирует уровень TCP, заключается в том, что получатель получит:

  • все байты, переданные отправителем
  • в том же порядке

Нет никаких гарантий относительно того, как байты могут быть разделены на «пакеты». Все, что вы могли бы прочитать о MTU, фрагментации пакетов, максимальном размере сегмента или любом другом, находящемся ниже уровня сокетов TCP, не имеет значения. TCP предоставляет службу потока только .

Что касается вашего вопроса, это означает, что получатель может получить первые 500 байт, а затем следующие 500 байт. Или, получатель может получать данные по одному байту за раз, если это то, что он просит. Именно по этой причине функция recv() принимает параметр, указывающий, сколько данных в возвращает , вместо того, чтобы сообщать вам , насколько большой пакет .

0
задан MaineBlackBears 1 March 2019 в 17:04
поделиться