Bezeichnung
easy:Recv -- empfängt Rohdaten über eine Easy-Verbindung
Übersicht
data$, n = easy:Recv(len)
Beschreibung
Dieser Befehl empfängt Rohdaten von der hergestellten Verbindung. Sie können ihn zusammen mit easy:Send() verwenden, um eigene Protokolle mit libcurl zu implementieren. Diese Funktionalität kann besonders nützlich sein, wenn Sie Proxies und/oder SSL-Verschlüsselung verwenden: libcurl übernimmt die Proxy-Verhandlung und den Verbindungsaufbau. Die Anzahl der zu empfangenden Bytes müssen Sie in len übergeben.

Um die Verbindung herzustellen, setzen Sie die Option #CURLOPT_CONNECT_ONLY, bevor Sie easy:Perform() oder multi:Perform() aufrufen. Beachten Sie, dass easy:Recv() bei Verbindungen, die ohne diese Option erstellt wurden, nicht funktioniert.

Der Aufruf gibt -1 in n zurück, wenn keine Daten zu lesen sind - der Socket wird intern im Non-Blocking-Modus verwendet. Wenn -1 zurückgegeben wird, warten Sie einige Millisekunden, auf Daten. Sie sollten nur ein paar Sekunden warten, bis easy:Recv() -1 in n zurückgibt. Der Grund dafür ist, dass libcurl oder die SSL-Bibliothek intern einige Daten zwischenspeichert. Daher sollten Sie erst easy:Recv() aufrufen, wenn alle Daten gelesen sind, die zwischengespeicherte Daten enthalten würden.

Darüber hinaus kann easy:Recv() -1 in n zurückgeben, wenn die einzigen Daten, die gelesen wurden, für die interne SSL-Verarbeitung bestimmt waren und keine anderen Daten verfügbar sind.

Eingaben
len
Anzahl der zu lesenden Bytes
Rückgabewerte
data$
Daten lesen
n
Anzahl der gelesenen Bytes

Navigation zeigen