home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 249 
 winserver.support@winserver.com to All 
 Re: [WINServer] telnet-outbound.wcc 
 22 Nov 18 10:12:12 
 
Newsgroups: wclistserve.win.server
Received: by winserver.com (Wildcat! SMTP Router v7.0.454.6)
          for WINServer@winserver.com; Thu, 22 Nov 2018 11:12:08 -0500
Received: from [192.168.1.68] ([99.121.5.8])
          by winserver.com (Wildcat! SMTP v7.0.454.6) with ESMTP
          id 1900065345.45468.1712; Thu, 22 Nov 2018 11:12:07 -0500
Message-ID: <5BF6D55C.5000907@winserver.com>
Date: Thu, 22 Nov 2018 11:12:12 -0500
From: Hector Santos 
Organization: Santronics Software, Inc
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
Thunderbird/24.8.1
MIME-Version: 1.0
To: WINServer@winserver.com
Subject: Re: [WINServer] telnet-outbound.wcc
References:

In-Reply-To:

Content-Type: multipart/mixed; boundary="------------070709090002060201010401"



On 11/22/2018 5:39 AM, Terry Roati wrote:
> I am in the process of setting up old doors on Win XP Pro VM using a game
Sever which I can connect to using telenet-outbound.wcx however it displays an
echo of characters, how do I turn off the echo in the telnet-outbound.wcc?
>

Terry,

Before I get into some wcBASIC details, in general for console 
applications, like telnet, you can control this with the Telnet 
client.  Most, if not all, telnet clients, will give you an "Local 
Echo" On/Off option because you never know what the server will do 
when processing characters.  The option is normally called "Local 
Echo" on the client side   Here is looks like for the Windows telnet 
client:

C:\wcat\telnet

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet> help

Commands may be abbreviated. Supported commands are:

c    - close                    close current connection
d    - display                  display operating parameters
o    - open hostname [port]     connect to hostname (default port 23).
q    - quit                     exit telnet
set  - set                      set options (type 'set ?' for a list)
sen  - send                     send strings to server
st   - status                   print status information
u    - unset                    unset options (type 'unset ?' for a list)
?/h  - help                     print help information
Microsoft Telnet> set ?
bsasdel         Backspace will be sent as delete
crlf            New line mode - Causes return key to send CR & LF
delasbs         Delete will be sent as backspace
escape x        x is an escape charater to enter telnet client prompt
localecho       Turn on localecho.        <<<<< LOCAL ECHO
logfile x       x is current client log file
logging         Turn on logging
mode x          x is console or stream
ntlm            Turn on NTLM authentication.
term x          x is ansi, vt100, vt52, or vtnt

Again, most telnet clients will give you a "Local echo" option and its 
normally off by default because the server is general in control here 
with how to display of input characters.  It can't rely on the client 
itself to do it right, so the server will do it.

Ok, for your needs, using wcBASIC, you mentioned a door?

For running the DOOR, the DOOR itself will have its own input and echo 
features, so you need to see what it does.   You can see the one of 
the example wcDoor32 applications to show you how it reads the 
Keyboard and does local echoing.  But it general, the door will handle 
it, and normally it will echo.

But for pure wcBASIC, lets first understand what are the current 
read/input/keyboard functions.  These are the following functions that 
you can use in your wcBASIC programs to get input.

The intrinsic input function:

   Input "Prompt: ", line

and all the extrinsic input string functions from the library 
"cmdline.wch"

   InputString
   InputMask
   InputWord
   InputNumber
   InputYesNo
   InputDate
   InputDateString

All do echoing. Can't avoid it. They all use the same internal function:

    sub ReadString(rs as TReadStringState)

By setting various fields in rs (see plus pack cmdline.wcc for 
example), you can set different input effects, like password stars, 
but nothing to turn off echoing.

To turn off echoing, you have to use the Readkey() and ReadKeyRaw() 
Functions:

    function ReadKeyRaw(timeout as boolean = INFINITE) as integer
    function ReadKey(timeout as integer = 10000) as integer

ReadKeyRaw() is pretty "raw" and ReadKey() is more higher level where 
you can use it for a FSE (Full Screen Editor) beause it handles the 
special keys for UP/DOWN, HOME, PGUP, PGDN, etc.

Only with these two functions can you do a NO ECHO concept.

Here is an example function called "MyInputString()" which gives you 
an LocalEcho option:


Function MyInputString(byval maxlen as integer, _
                        byval localecho as boolean) as String
   dim s as string          = ""
   dim nlen as integer      = 0
   dim msecs as integer     = 100
   const BS   = chr(8)
   const CR   = chr(13)
   const LF   = chr(13)
   do
     dim k as integer = ReadKey(msecs)
     select case(k)
       case  0: // timeout, only for ReadKey()
       case -1: // timeout, only for ReadKeyRaw()
       case 8:  // backspace
          if len(s) > 0 then
             s = left(s, len(s)-1)
             if localecho then print BS+" "+BS;
          end if
       case 10: // ignore linefeed
       case 13: // exit with carriage return
          if localecho then print CRLF;
          exit do
       case else:
          if maxlen > 0 and len(s) >= maxlen then
             exit do
          end if
          if localecho then print chr(k);
          s = s + chr(k)
     end select
   loop
   MyInputString = s
End Function

Now you can use this in "Telnet Outbound.wcc"  but keep in mind how it 
is "InputString" is used here. It is called twice:

   s = InputString(0, False)     // LINE #78
   s = InputString(0)            // LINE #85

The first one says, don't wait for input if there any commands in the 
stack (CurrentCmdLine stack which is part of the "Cmdline.wcx" 
library) In general, the way this is used is:

    dim s as string
    s = InputString(0, FALSE)   // don't wait if command in stack
    if s = "" then              // nothing in stack so prompt
       print "Enter whatever: ";
        s = InputString(0)
    end if

So to use your new MyInputString(), change the second one to this:

    dim s as string
    s = InputString(0, FALSE)   // don't wait if command in stack
    if s = "" then              // nothing in stack so prompt
       print "Enter whatever: ";
        s = MyInputString(0, FALSE)
    end if

That will work I think for you.

Hope these details helps.  Please ask developers question in the 
Developer list or forums. Thanks

-- 
Hector, Engineering & Technical Support
Santronics Software, Inc.
http://www.santronics.com (sales)
http://www.winserver.com (support)
http://www.winserver.com/AupInfo (Online AUP Help)
Office: 305-248-3204

begin:vcard 
fn:Hector Santos 
n:Santos;Hector 
email;internet:winserver.support@winserver.com 
tel;work:305-248-3204 
version:2.1 
end:vcard 
 
--- Platinum Xpress/Win/WINServer v3.1
 * Origin: Prison Board BBS Mesquite Tx  //telnet.RDFIG.NET www. (1:124/5013)

<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca