Code: Select all
[MYHEADER]hello< /code> < /p>
...Womer danach sende ich noch weitere 15 Bytes: < /p>
[MYHEADER]world< /code> < /p>
Jetzt höre ich in der Empfängeranwendung denselben Port mit einem UDP -Socket an, der an dieselbe Adresse gebunden ist. Nehmen wir an, beide Nachrichten sind seit dem letzten Mal eingetroffen (und in derselben Reihenfolge). Abfragen des Sockets für eingehende Daten jeden Frame: < /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
Hier ist meine Frage. Welche dieser Szenarien reflektiert genau, was in dieser Situation passieren würde? < /P>
Option a.
- gibt true zurück und zeigt eine ausstehende Größe von 15 Bytes an. Recv gibt mir die meldung [myheader] Hallo .
Code: Select all
HasPendingData
- gibt true zurück und zeigt eine ausstehende Größe von 15 Bytes an. Recv gibt mir die meldung [myheader] world .
Code: Select all
HasPendingData
- Gibt false zurück.
Code: Select all
HasPendingData
[*]
Code: Select all
HasPendingData
HasPendingData< /code> Gibt false zurück. Danke!