TCP + FREERTOS_ZERO_COPY

hannes23 wrote on Tuesday, December 05, 2017:

Hello,

at my actual project I’d like to use FreeRTOS_recv() in zero-copy mode.
So I have to call FreeRTOS_recv() with the FREERTOS_ZERO_COPY - flag set , and later
call a second time FreeRTOS_recv() with NULL-pointer and number of received bytes to flush the
data from the stream.

Due to the nature of TCP my expected data may come in more than one part from the socket.
So two questins arose:

  1. Do I have to flush each received part or can I do it in whole in one call, where the sum of bytes is given?
  2. Can I expect the pointers given back from FreeRTOS_recv() form a contiguous buffer or may the
    the data be stored anywhere?

If the second question is answered negative, I think that the zero-copy option is kind of useless in this
situation because I have to copy all the data parts to a buffer to have contiguous data, which I need
later to work on it.
Am I wrong?

Thankjs an regards
Hannes