Программирование сокета TCP: в моем приложении, сторона-получатель использует буфер малого размера, а затем передает данные. Поэтому recv() вызывается несколько раз, пока не будут получены все данные. При каждом вызове recv() используемый буфер копируется в другой большой буфер или частично добавляется к файлу.Обработка порядка TCP-пакетов на стороне приемника на уровне приложения
Мой вопрос здесь в том, должен ли я обрабатывать принятый TCP-пакет в моем коде дополнительно, или TCP обрабатывает его в своем собственном буфере на фоне? Поскольку переданные пакеты TCP поступают на приемник не в правильном порядке.
TCP гарантирует, что данные поступают в том же порядке, в каком они были отправлены. Если вы наблюдаете иначе, в вашем коде есть ошибка. – nos
Общим недоразумением для тех, кто не связан с TCP, является то, что они ожидают * обмена сообщениями * (то есть каждый вызов Send на одном конце будет соответствовать одному вызову Receive на другом конце). Если это то, что, по вашему мнению, вы получили, возможно, вы просто неправильно интерпретируете то, что видите, как «пакеты, выходящие из строя», что, как отмечали другие, не происходит. –