home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / RXSOCK.ZIP / test_c.cmd < prev    next >
OS/2 REXX Batch file  |  1993-06-09  |  4KB  |  158 lines

  1. /*------------------------------------------------------------------
  2.  * test_c.cmd :
  3.  *------------------------------------------------------------------
  4.  * 08-05-92 originally by Patrick J. Mueller
  5.  *------------------------------------------------------------------*/
  6.  
  7. trace off
  8.  
  9. /*------------------------------------------------------------------
  10.  * choose port number
  11.  *------------------------------------------------------------------*/
  12. port = 1923
  13.  
  14. /*------------------------------------------------------------------
  15.  * initialize socket package
  16.  *------------------------------------------------------------------*/
  17. parse source os .
  18.  
  19. if (os = "OS/2") then
  20.    do
  21.    if RxFuncQuery("SockLoadFuncs") then
  22.       do
  23.       rc = RxFuncAdd("SockLoadFuncs","RxSock","SockLoadFuncs")
  24.       rc = SockLoadFuncs()
  25.       end
  26.    end
  27.  
  28. if (os = "AIX/6000") then
  29.    do
  30.    rc = SysAddFuncPkg("rxsock.dll")
  31.    end
  32.  
  33. /*------------------------------------------------------------------
  34.  * get server name
  35.  *------------------------------------------------------------------*/
  36. parse arg server .
  37.  
  38. if (server = "?") then
  39.    Usage()
  40.  
  41. if (server = "") then
  42.    server = SockGetHostId()
  43.  
  44. else
  45.    do
  46.    rc = SockGetHostByName(server,"host.!")
  47.    if (rc = 0) then
  48.       do
  49.       say "Error" h_errno "calling SockGetHostByName("server")"
  50.       exit
  51.       end
  52.  
  53.    server = host.!addr;
  54.    end
  55.  
  56. /*---------------------------------------------------------------
  57.  * open socket
  58.  *---------------------------------------------------------------*/
  59. socket  = SockSocket("AF_INET","SOCK_STREAM",0)
  60. if (socket = -1) then
  61.    do
  62.    say "Error on SockSocket:" errno
  63.    exit
  64.    end
  65.  
  66. /*------------------------------------------------------------------
  67.  * catch breaks
  68.  *------------------------------------------------------------------*/
  69. signal on halt
  70.  
  71. /*---------------------------------------------------------------
  72.  * connect socket
  73.  *---------------------------------------------------------------*/
  74. server.!family = "AF_INET"
  75. server.!port   = port
  76. server.!addr   = server
  77.  
  78. rc = SockConnect(socket,"server.!")
  79. if (rc = -1) then
  80.    do
  81.    say "Error on SockConnect:" errno
  82.    exit
  83.    end
  84.  
  85. /*------------------------------------------------------------------
  86.  * get some data to send over
  87.  *------------------------------------------------------------------*/
  88. data = random(10000,99999)
  89.  
  90. say "Sending  '"data"' to  " server
  91.  
  92. /*------------------------------------------------------------------
  93.  * send the data over
  94.  *------------------------------------------------------------------*/
  95. rc = time("r")
  96. rc = SockSend(socket,data)
  97. elapsed = time("e")
  98.  
  99. if (rc = -1) then
  100.    do
  101.    say "Error on SockSend:" errno
  102.    exit
  103.    end
  104.  
  105. /*------------------------------------------------------------------
  106.  * receive the result from the server
  107.  *------------------------------------------------------------------*/
  108. rc = time("r")
  109. rc = SockRecv(socket,"newData",length(data))
  110. elapsed = elapsed + time("e")
  111.  
  112. if (rc = -1) then
  113.    do
  114.    say "Error on SockRecv:" errno
  115.    exit
  116.    end
  117.  
  118. /*------------------------------------------------------------------
  119.  * print results
  120.  *------------------------------------------------------------------*/
  121. if (reverse(data) <> newData) then
  122.    say "Unexpected results from the server: '"newData"'"
  123.  
  124. else
  125.    do
  126.    say "Received '"newData"' from" server "(successful!!)"
  127.    say "Elapsed network transit time:" elapsed "seconds"
  128.    end
  129.  
  130. /*------------------------------------------------------------------
  131.  * close socket (and catch signals)
  132.  *------------------------------------------------------------------*/
  133. halt:
  134.  
  135. rc = SockSoClose(socket)
  136. if (rc = -1) then
  137.    do
  138.    say "Error on SockSoClose:" errno
  139.    exit
  140.    end
  141.  
  142. exit
  143.  
  144. /*------------------------------------------------------------------
  145.  * some simple help
  146.  *------------------------------------------------------------------*/
  147. Usage: procedure
  148.    parse source . . me .
  149.  
  150.    say "usage:"
  151.    say "   " me "<server>"
  152.    say "is used to run the rxSock tester"
  153.    say
  154.    say "where:"
  155.    say "   <server> - tcp/ip host name running test_s (default = current host)"
  156.  
  157.    exit
  158.