SDLNet TCP Recv: Unterschied zwischen den Versionen
I0n0s (Diskussion | Beiträge) K (→Beschreibung) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 28: | Zeile 28: | ||
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. | 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 | + | 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. | Diese Routine kann nicht für Server-Sockets verwendet werden. | ||
− | |||
− | |||
== Rückgabewert == | == Rückgabewert == |
Aktuelle Version vom 30. April 2007, 15:49 Uhr
Inhaltsverzeichnis
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