Switches pure TCP/IP connection mode to Telnet connection mode. Telnet connections allow several Telnet protocol-specific BDL operations for terminal emulation support.
WebAPI.bdh
WebTcpipSetTelnetMode( in hWeb : number, in sRendererId : string, in nCols : number optional, in nRows : number optional, in bUseColor : number optional, in nOptions : number optional ): boolean;
true if the operation was successful
false otherwise
Parameter | Description |
---|---|
hWeb | Valid handle to a Web connection created by WebTcpipConnect. |
sRendererId |
ID of a renderer that should be used when handling high-level Telnet functions. Currently defined rendererIds are:
|
nCols | Rendered screen width (optional). Default (0) value is read from profile settings. |
nRows | Rendered screen height (optional). Default (0) value is read from profile settings. |
bUseColors | Specifies if rendered screen should be displayed in color (optional). Default is false. |
nOptions |
Specific Telnet service protocol option (optional). Currently the following options are available and can be ORed (+ operator):
|
dcltrans transaction TInit begin StrSetHostCP(28591); // 28591 (ISO 8859-1 Latin I) end TInit; transaction TMain var hWeb0 : number; sBuffer : string; sBoundary : string; nOption : number; begin WebTcpipConnect(hWeb0, "My.TelnetHost.IP", WEB_PORT_TELNET); WebTcpipSetTelnetMode(hWeb0, TERMINAL_TYPE_ANSI, 80, 24, true, TELNET_MODEOPT_RFC_1576 | TELNET_MODEOPT_AUTO_RECV); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalType); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalSpeed); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_XDisplayLocation); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_NewEnvironment); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TerminalType); WebTelnetSendCommand(hWeb0, TELNET_CMD_WONT, TELNET_OPT_TerminalSpeed); WebTelnetSendCommand(hWeb0, TELNET_CMD_WONT, TELNET_OPT_XDisplayLocation); WebTelnetSendCommand(hWeb0, TELNET_CMD_WONT, TELNET_OPT_NewEnvironment); WebTelnetRecvSubNegotiation(hWeb0, TELNET_OPT_TerminalType); WebTelnetSendTerminalType(hWeb0, "vt100"); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_SuppressGoAhead); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_Echo); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_NegotiateWindowSize); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_Status); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_RemoteFlowControl); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SuppressGoAhead); WebTelnetSendCommand(hWeb0, TELNET_CMD_WONT, TELNET_OPT_Echo); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_NegotiateWindowSize); WebTelnetSendSubNegotiation(hWeb0, TELNET_OPT_NegotiateWindowSize, "\h00500018"); WebTelnetSendCommand(hWeb0, TELNET_CMD_DONT, TELNET_OPT_Status); WebTelnetSendCommand(hWeb0, TELNET_CMD_WONT, TELNET_OPT_RemoteFlowControl); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_Echo); WebTcpipGetPacketBoundary(hWeb0, sBoundary); WebTcpipRecvPacketsUntilData(hWeb0, "login: "); WebTelnetTypeKeys(hWeb0, StrToHostCP("leo"), 359.3, TELNET_FLAG_CASE_SENSITIVE); WebTcpipSendBin(hWeb0, "\h0D00"); WebTcpipRecvExact(hWeb0, NULL, 390); WebTcpipSetPacketBoundary(hWeb0, sBoundary); WebTcpipRecvUntilIdle(hWeb0, NULL, 5000); WebTcpipSendBin(hWeb0, "\h0D000D0A"); WebTcpipRecvPackets(hWeb0, NULL, 3); WebTcpipSendBin(hWeb0, "\h0D00"); WebTcpipSendPacket(hWeb0, StrToHostCP("8") + "\h0D00"); WebTcpipRecvClose(hWeb0, NULL); WebTcpipShutdown(hWeb0); end TMain;