Ich werde aus der Dokumentation zu 'ReceiveBuffer' nicht schlau:
Nachdem ich ein PING-Request gesendet habe, möchte ich eine Zeit 'T=Timeout' lang auf das PING-REPLY warten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| time := MY_TIMEOUT; while (time> 0) do byteCount := ReceiveBuffer(myBuffer, Size, ReadTimeout); if(byteCount>0) then doSomething(myBuffer);
time := time - ReadTimeout; end; |
time: die jeweils dekrementierbare Zeit; In 'While' soll max. die jeweils abnehmende timeoutzeit verweilt werden.
ReadTimeout: Das ist die Zeit, welche die ReceiveBuffer Funktion verwendet.
Jetzt: Wie verhält sich 'ReadBuffer'??
+ Wartet diese Funktion solange, wie ich als 3. Argument mitgegeben habe? ...Oder retourniert diese, sobald irgendwelche Bytes empfangen wurde?
Wenn ja, könnte ich ja einfach dass da machen, nicht?
Delphi-Quelltext
1: 2: 3: 4:
| if (ReceiveBuffer(myBuffer, Size, MY_TIMEOUT) > 0) then doParseData(myBuffer) else |
In c++ gibts da eine Funktion, welche die Anzahl anliegenden Bytes ausliest, BEVOR dann die effektive Receive() Methode aufgerufen wird und damit der Inhalt gelesen wird. Hier scheint es nun ein bissl anders zu sein.
Thanks for the Help!