SDLNet TCP Recv

Aus DGL Wiki
Version vom 30. April 2007, 15:49 Uhr von I0n0s (Diskussion | Beiträge) (Beschreibung)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

SDLNet_TCP_Recv

Name

SDLNet_TCP_Recv - Daten von einem verbundenen Socket holen


Delphi-Spezifikation

function SDLNet_TCP_Recv( sock : PTCPsocket; data : Pointer; maxlen : integer ) : integer;


Parameter

sock muss ein gültiger und verbundener TCPSock sein.
data sollte auf den Anfang eines reservierten Speicherblock zeigen, in den die Daten geschrieben werden.
maxlen ist die maximale Anzahl der Bytes, die gelesen werden sollen.


Beschreibung

SDLNet_TCP_Recv liest verfügbare Daten, die über den Socket empfangen wurden. Bis zu maxlen Bytes werden gelesen und in data gespeichert. Wenn bisher keine Daten über den Socket empfangen wurden, dann wartet die Routine, bis etwas empfangen wird. Die Anzahl der kopierten Bytes kann kleiner als maxlen sein.

Aufgrund des Verhaltens von TCP kann ein Datenblock, welcher vom Peer gesendet wurde, normalerweise nicht im gleichen Augenblick mit SDLNet_TCP_Recv gelesen werden. TCP ist ein Datenstrom-Protokoll, was heißt, dass alle Daten in der richtigen Reihenfolge ankommen, aber nicht unbedingt in den gleichen Blocks. Anwendungen, die mit Textzeilen kommunizieren (z.B. IRC) werden diese Routine öfter aufrufen und auf Zeilenenden prüfen müssen.

Diese Routine kann nicht für Server-Sockets verwendet werden.

Rückgabewert

Gibt die Anzahl der Bytes zurück, die Empfangen wurden. Ein Rückgabewert von -1 bedeutet einen Fehler, ein Rückgabewert von 0 gibt an, dass die Verbindung vom Peer getrennt wurde.


Siehe auch

SDLNet_TCP_Send, SDLNet_TCP_Accept, SDLNet_TCP_Open, SDLNet_TCP_GetPeerAddress, SDLNet_TCP_Close, TCPsocket