Код: Выделить всё
[MYHEADER]hello< /code> < /p>
...Then после этого я отправляю еще 15 байт: < /p>
[MYHEADER]world< /code> < /p>
Теперь, в приложении приемника, я слушаю в том же порту с сокетом UDP, который связан с тем же адресом. Допустим, что оба сообщения появились (и в одном и том же порядке), так как в последний раз я проверял сокет приемника. Опрос сокета для входящих данных Каждый кадр: < /p>
uint32 PendingSize;
while (Socket->HasPendingData(PendingSize))
{
uint32 BytesRead;
uint8 MessageData[kMaxMessageSize];
if (Socket->Recv(MessageData, kMaxMessageSize, BytesRead))
{
// Do stuff here
// Will BytesRead be equal to PendingSize?
}
}
< /code>
HasPendingData
Вот мой вопрос. Какой из этих сценариев точно отражает то, что произойдет в этой ситуации?
- возвращает True и показывает ожидающий размер 15 байтов. Recv дает мне сообщение [myheader] hello .
Код: Выделить всё
HasPendingData
- возвращает True и показывает ожидающий размер 15 байтов. Recv дает мне сообщение [myheader] World .
Код: Выделить всё
HasPendingData
- возвращает false.
Код: Выделить всё
HasPendingData
[*]
Код: Выделить всё
HasPendingData
HasPendingData< /code> возвращает false. < /li>
< /ol>
Любое понимание ценится. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/261 ... -recv-read