WebTelnetRecvRecordsUntilData Function

Action

Receives records (data terminated by IAC EOR) from a Telnet server until a record contains expected data.

Include file

WebAPI.bdh

Syntax

WebTelnetRecvRecordsUntilData(    in  hWeb          : number,
    in  sDataExpected : string,
    in  nOptions      : number optional,
    out sDataReceived : string optional ): boolean;

Return value

  • true if the operation succeeded

  • false otherwise

Parameter Description
hWeb Valid handle to a Web connection created by WebTcpipConnect and set to Telnet mode using WebTcpipSetTelnetMode.
sDataExpected Binary string that is to be looked for in received records.
nOptions

Comparison options; this is a case-insensitive "contains" by default, or may be one of the following:

  • TELNET_FLAG_EQUAL: Lengths of both values must match.

  • TELNET_FLAG_CASE_SENSITIVE: Comparison is performed case-sensitively.

  • TELNET_FLAG_IS_DIFFERENT: Negates the logical comparison.

  • TELNET_FLAG_IGNORE_WHITE_SPACE: All whitespaces in both compared strings are cut before comparison is performed.

  • TELNET_FLAG_CONTAINS: sText must occur within rendered screen text. (default)

  • TELNET_FLAG_FROM_LEFT: comparison is performed from the left side.

  • TELNET_FLAG_TRIM_LEFT: Leading blank spaces are trimmed from received data before comparison is performed.

  • TELNET_FLAG_TRIM_RIGHT: Trailing blanks are trimmed from received data before comparison is performed.

  • TELNET_FLAG_TRIM_BOTH: Status value is trimmed from both sides of content before comparison is performed.

  • TELNET_FLAG_FROM_RIGHT: Comparison is performed beginning from the right side.

sDataReceived Optional string variable where all received binary data is to be placed until comparison succeeds (up to and including the last received record).

Example

dcltrans  transaction TInit
  begin
    StrSetHostCP(1148);
// 1148  (IBM EBCDIC - International
(500 + Euro))
  end TInit;
   transaction TMain
  var
    hWeb0     : number;
    iFieldPos : number;
  begin
    WebTcpipConnect(hWeb0, "My.TelnetHost.IP", WEB_PORT_TELNET);
// Port: 23
    WebTcpipSetTelnetMode(hWeb0, TERMINAL_TYPE_3270, 80, 24, true,
      TELNET_MODEOPT_RFC_1576 | TELNET_MODEOPT_AUTO_RECV);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalType);
    WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TerminalType);
    WebTelnetRecvSubNegotiation(hWeb0, TELNET_OPT_TerminalType);
    WebTelnetSendTerminalType(hWeb0, "IBM-3278-2-E");
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_EndOfRecord);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_EndOfRecord);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary);
    WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_EndOfRecord);
    WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_EndOfRecord);
    WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary);
    WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary);
    WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary);
    WebTelnetRecvRecord(hWeb0);
    WebTelnetRecvRecord(hWeb0);
    WebTelnetSendRecord(hWeb0,
      
      "\h88001181A600000B0100005000180050" // ····¦······P···P 00000000
 
      "\h001800168186000800F4F1F1F2F2F3F3" // ·········ôññòòóó 00000010
 
      "\hF4F4F5F5F6F6F7F7000D81870400F0F1" // ôôõõöö÷÷······ðñ 00000020
 
      "\hF1F2F2F4F40007818800010200178181" // ñòòôô··········· 00000030
 
      "\h01000050001801000100030004000909" // ···P············ 00000040
 
      "\h0C0780001B81858200090C0000000007" // ················ 00000050

      "\h00000002B900250100F103C301360006" // ····¹·%··ñ·Ã·6·· 00000060
 
      "\h81990000001281970000080008000101" // ················ 00000070
 
      "\h000B0401C0C1000981A80200F0FFFFFF" // ····ÀÁ···¨··ð··· 00000080

      "\hFF000C81950000081108110101000F81" // ················ 00000090
 
      "\h80A687888185869997A89580"); // ·¦·······¨·· 000000A0  

    WebTelnetRecvRecordsUntilData(hWeb0, "\h4040405C");
    if not WebTelnetScreenVerifyCursor(hWeb0, 16, 23, SEVERITY_SUCCESS) then
      WebTcpipShutdown(hWeb0);
    else
      WebTelnetSendRecord(hWeb0, "\h7D5B6F115B6F" + StrToHostCP("1"));
      WebTelnetScreenRecvRecordsUntilStatus(hWeb0, "Keyboard Locked", "false");
      WebTelnetSendRecord(hWeb0, "\h7D5BF0115BF0" + StrToHostCP("12"));
      WebTelnetScreenRecvRecordsUntilText(hWeb0, 6, 22, "Choice: ");    
      WebTelnetSendRecord(hWeb0, "\h7D5A5E115A5E" + StrToHostCP("12"));
      WebTelnetScreenRecvRecordsUntilField(hWeb0, 1, "");
      WebTcpipShutdown(hWeb0);    end;
  end TMain;