Note: This is specific to SilkPerformer 7.4 and earlier versions When using the Terminal Emulation (or GreenScreen) feature of SilkPerformer you may, in rare circumstances, rncounter the following error when replaying your script: "WebTelnetSendCommand(WinSock: 10053 - Software caused connection abort)" This error can be caused by a known issue in SilkPerformer 7.4 and earlier versions; in which the scripted synchronization function calls time out. The time out occurs because of a race condition of the initial telnet setting sent by the client and the server (at the same time). This has the affect that the second "WebTelnetSendCommand" function deletes the previously received commands and thus causing any subsequent synchronizations command to time out. A workaround this problem you should move the first group of synchronization functions (WebTelnetSyncCommand) to before the first WebTelnetSendCommand call in the BDF script. For example, the following code at the start of the script: begin WebTcpipConnect(hWeb0, "10.250.14.20", WEB_PORT_TELNET); // Port: 23 WebTcpipSetTelnetMode(hWeb0, TERMINAL_TYPE_VT200, 80, 24, true, TELNET_MODEOPT_RFC_1576 | TELNET_MODEOPT_SYNC); WebTelnetSetTerminalConfigString(hWeb0, ""); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_SuppressGoAhead); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_NegotiateWindowSize); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SuppressGoAhead); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_Echo); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalType); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_NegotiateWindowSize); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_RemoteFlowControl); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SendLocation); WebTelnetSyncCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_Echo); WebTelnetSyncCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_SuppressGoAhead); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalSpeed); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_XDisplayLocation); WebTcpipScreenRecvPacketsUntilCursor(hWeb0, 11, 5); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SuppressGoAhead); Should be changed to: begin WebTcpipConnect(hWeb0, "10.250.14.20", WEB_PORT_TELNET); // Port: 23 WebTcpipSetTelnetMode(hWeb0, TERMINAL_TYPE_VT200, 80, 24, true, TELNET_MODEOPT_RFC_1576 | TELNET_MODEOPT_SYNC); WebTelnetSetTerminalConfigString(hWeb0, ""); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalType); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_NegotiateWindowSize); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_RemoteFlowControl); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SendLocation); WebTelnetSyncCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_Echo); WebTelnetSyncCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_SuppressGoAhead); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalSpeed); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_XDisplayLocation); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_SuppressGoAhead); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_NegotiateWindowSize); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SuppressGoAhead); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_Echo); WebTcpipScreenRecvPacketsUntilCursor(hWeb0, 11, 5); WebTelnetSyncCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_SuppressGoAhead); Please note : That this issue was addressed in SilkPerformer 7.5. Old KB# 17398
↧