WebTcpipRecvUntil Function


Retrieves a response from the remote host until the pattern sPattern is found. Only the first nMaxData bytes are stored into the buffer sData. If sData is set to NULL, internal buffers are used for retrieval.

Include file



WebTcpipRecvUntil( in  hWeb      : number,
                   out sData     : string allownull,
                   in  nMaxData  : number,
                   out nReceived : number allownull,
                   in  sPattern  : string,
                   in  nLength   : number optional ): boolean;

Return value

  • true if the end of response is found

  • false otherwise

Parameter Description
hWeb Valid handle to a Web connection that was created by WebTcpipConnect

Buffer to store the received data.

This field also can be set to NULL to use only internal buffers, for example, if data is not to be parsed


Maximum amount of bytes to store into sData. Specify STRING_COMPLETE to get all received data.

This value has no effect when sData is set to NULL.

nReceived Parameter that receives the actual amount of data received from the server

The termination string. Predefined constants are:

  • WEB_CRLF ("\r\n")

  • WEB_CRLFCRLF ( "\r\n\r\n")

  • WEB_CRLFDOTCRLF ("\r\n.\r\n")

  • WEB_CRNULL ("\h0D00")

  • WEB_LFNULL ("\h0A00")

This may also be binary data. For using all available binary data specify STRING_COMPLETE for nLength and use the bin() operator for sData (see example).

nLength The length of the binary pattern (optional). Omit this parameter to use all available data.


  transaction TWeb
    hWeb      : number;
    sHdr      : string;
    sSize     : string(20);
    nReceived : number;
    sPattern  : string;
    WebTcpipConnect(hWeb, "lab3", 80);
    sHdr := "GET /file5k.html HTTP/1.1\r\n"
                 "Host: lab3\r\n\r\n";
    // send HTTP request header
    WebTcpipSend(hWeb, sHdr);

    // receive HTTP response header
    WebTcpipRecvUntil(hWeb, sHdr, STRING_COMPLETE, nReceived, "\r\n\r\n");
    SPattern := "\r\n";
    WebTcpipRecvUntil(hWeb, sHdr, STRING_COMPLETE, nReceived, "\r\n\r\n");
    // receive document
    StrSearchDelimited(sSize, STRING_COMPLETE, sHdr, "Content-Length: ", 1, "\r\n",
                      1, STR_SEARCH_FIRST);
    WebTcpipRecvExact(hWeb, NULL, number(sSize));

    // reset the persistent connection
    WebTcpipShutdown(hWeb, WEB_SHUTDOWN_RESET);
  end TWeb;

Sample scripts

WebTcpipHttp01.bdf, WebTcpipImap401.bdf