home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / rxtelnet.zip / nvt / xnvt.cmd < prev   
OS/2 REXX Batch file  |  1997-08-17  |  2KB  |  103 lines

  1. /**/
  2.  hostname = arg(1)
  3.  port = 0
  4.  
  5.  if hostname = '' then
  6.    do
  7.      say 'enter hostname'
  8.      pull hostname
  9.      say 'enter port'
  10.      pull port
  11.      if port = '' then port = 23
  12.    end
  13.  
  14.  i = 0
  15.  l = ''
  16.  
  17.  echo = ''
  18.  connected = 0
  19.  
  20.  EOT = '04'x
  21.  ACK = '06'x
  22.  BEL = '07'x
  23.  
  24.  signal on halt
  25.  signal on error
  26.  signal on syntax
  27.  
  28.  call RxFuncAdd "loadrtn","Nvt","load_routine"
  29.  call loadrtn
  30.  call RxFuncDrop "loadrtn"
  31.  
  32.  socket = Telnet(hostname,port)
  33.  
  34.  if socket = ''
  35.    then
  36.        say 'telnet connection failed'
  37.    else
  38.      do
  39.        connected = 1
  40.        say 'socket='socket
  41.        do while connected
  42.          call stdout
  43.          call stdin
  44.        end
  45.      end
  46.  
  47.  call halt
  48.  return
  49.  
  50. stdin:
  51.  call charout,'1a'x
  52.  parse pull s
  53.  if s = '`' then
  54.    call retry
  55.  else
  56.    do
  57.      c = Tput(socket,s)
  58.      if c = 0 then
  59.        echo = ACK||s
  60.      else
  61.        connected = 0
  62.    end
  63.  return
  64.  
  65. stdout:
  66.  do forever
  67.    l = Tget(socket)
  68.    select
  69.      when l = EOT then leave
  70.      when l = '' then leave
  71.      otherwise call sayit
  72.    end
  73.  end
  74.  return
  75.  
  76. sayit:
  77.  if echo <> '' then
  78.    if l = ACK | l = echo then do; echo = ''; return; end;
  79.  say l
  80.  return
  81.  
  82. retry:
  83.  l = Tget(socket,5000)
  84.  select
  85.    when l = EOT then return
  86.    when l = '' then return
  87.    otherwise say l
  88.  end
  89.  return
  90.  
  91. syntax:
  92.  say '! syntax'
  93. error:
  94.  say '! error'
  95. halt:
  96.  say '! halt'
  97.  call Tquit socket
  98.  
  99.  call RxFuncAdd "droprtn","Nvt","drop_routine"
  100.  call droprtn
  101.  call RxFuncDrop "droprtn"
  102.  exit
  103.