Function DE Version 4.50

@IPReceive

Internet

Syntax

@IPReceive(SOCKET1;RETTEXT2);
@IPReceive(SOCKET1;RETTEXT2;TIMEOUT3);
@IPReceive(SOCKET1;RETTEXT2;TIMEOUT3;RETTYPETEXT4);

Beschreibung

Derzeit nur für Windows verfügbar!!!

Empfängt den TEXT RETTEXT2 über den geöffneten IPSOCKET IPSOCKET1.
Der Rückgabewert der Funktion ist die Anzahl der empfangenen Bytes oder ein @ERROR-Wert.
Der Timeout für diese Funktion beträgt 10 Sekunden oder FN TIMEOUT3 Sekunden.
Innerhalb der Funktion wird im Sekundentakt die Verfügbarkeit von neuen Daten überprüft.
Können innerhalb des Timeouts keine Daten empfangen werden so ist der Rückgabewert 0.

Mit dem optionalen Parameter RETTYPETEXT4 wird der Rückgabetyp von Parameter RETTEXT2 festgelegt.
"A" (default) Rückgabe als TEXT
"RT" Rückgabe als RICHTEXT (RT)

Beispiel: @IPReceive(SOCKET1;RETTEXT2;TIMEOUT3;RETTYPETEXT4);

IPSOCKET1:=@IPOpenReceiveSocket("";80;"TCP");
IF(@GetDataType(IPSOCKET1)="IPS")
{
   LOOP:=1;
   WHILE(LOOP)
   {
      ConSocket:=@IPWaitForConnection(IPSOCKET1;RETIPHOST2);
      IF(@GetDataType(ConSocket)="IPS")
      {
         DataAvailable:=@IPIsDataAvailable(ConSocket);
         @LogReport(DataAvailable);
         RetSuccess:=@IPReceive(ConSocket;RETTEXT;5;"A");
         ConSocket:=@IPCloseSocket(ConSocket);
      }
      LOOP:=!@TaskShouldStop;
   }
   IPSOCKET1:=@IPCloseSocket(IPSOCKET1);
}

Es wird ein empfangender IPSOCKET geöffnet und auf eingehende Anfragen gewartet
(Bis der Task mit "Tell engine stop X" oder mit "Tell engine e" die engine selbst beendet wird).
Wenn eine Anfrage eingeht wird der neue IPSOCKET ConSocket auf verfügbare Daten abgefragt.
Das Ergebnis dieser Abfrage wird ausgegeben (Variable DataAvailable).
Die verfügbaren Daten werden der Variable RETTEXT zugewiesen und der Variable RetSuccess wird,
entweder die Anzahl der empfangenen Bytes zugewiesen oder, bei Auftreten eines Fehlers, @ERROR.
Danach wird der neue IPSOCKET ConSocket wieder geschlossen.
Wenn der Task beendet wird, wird auch der empfangende IPSOCKET IPSOCKET1 wieder geschlossen.