home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / RXSOCK.ZIP / test_c3.cmd < prev    next >
OS/2 REXX Batch file  |  1993-07-14  |  5KB  |  163 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.  * get socket options
  68.  *------------------------------------------------------------------*/
  69. opts = "SO_DEBUG"        ,
  70.        "SO_ACCEPTCONN"   ,
  71.        "SO_REUSEADDR"    ,
  72.        "SO_KEEPALIVE"    ,
  73.        "SO_DONTROUTE"    ,
  74.        "SO_BROADCAST"    ,
  75.        "SO_USELOOPBACK"  ,
  76.        "SO_LINGER"       ,
  77.        "SO_OOBINLINE"    ,
  78.        "SO_SNDBUF"       ,
  79.        "SO_RCVBUF"       ,
  80.        "SO_SNDLOWAT"     ,
  81.        "SO_RCVLOWAT"     ,
  82.        "SO_SNDTIMEO"     ,
  83.        "SO_RCVTIMEO"     ,
  84.        "SO_ERROR"        ,
  85.        "SO_TYPE"         ,
  86.        "garbage"
  87.  
  88. /*------------------------------------------------------------------
  89.  * get 'em
  90.  *------------------------------------------------------------------*/
  91. say "retrieving socket options"
  92. do i = 1 to words(opts)
  93.    opt = word(opts,i)
  94.    rc = SockGetSockOpt(socket,"SOL_SOCKET",opt,"value")
  95.    say "  " left(rc,20) left(opt,20) "=" value
  96. end
  97.  
  98. /*------------------------------------------------------------------
  99.  * set 'em
  100.  *------------------------------------------------------------------*/
  101. say "setting socket options"
  102. o.0 = 4
  103. o.1 = "SO_LINGER"; o.1.1 = "1 1"
  104. o.2 = "SO_TYPE";   o.2.1 = "STREAM"
  105. o.3 = "SO_RCVBUF"; o.3.1 = "1000"
  106. o.4 = "SO_DEBUG";  o.4.1 = "2"
  107.  
  108. do i = 1 to o.0
  109.    rc = SockSetSockOpt(socket,"SOL_SOCKET",o.i,o.i.1)
  110.    say "  " left(rc,20) left(o.i,20) "=" o.i.1
  111. end
  112.  
  113. /*------------------------------------------------------------------
  114.  * get 'em
  115.  *------------------------------------------------------------------*/
  116. say "retrieving socket options"
  117. do i = 1 to words(opts)
  118.    opt = word(opts,i)
  119.    rc = SockGetSockOpt(socket,"SOL_SOCKET",opt,"value")
  120.    say "  " left(rc,20) left(opt,20) "=" value
  121. end
  122.  
  123. /*------------------------------------------------------------------
  124.  * ioctl
  125.  *------------------------------------------------------------------*/
  126. say
  127. say "testing ioctl('FIONREAD')"
  128. rc = SockIoctl(socket,"FIONREAD","readable")
  129. say "  " left(rc,20) left("FIONREAD",20) "=" readable
  130.  
  131. say "testing ioctl('GARBAGE')"
  132. rc = SockIoctl(socket,"GARBAGE","readable")
  133. say "  " left(rc,20) left("GARBAGE",20) "=" readable
  134.  
  135. /*------------------------------------------------------------------
  136.  * close socket (and catch signals)
  137.  *------------------------------------------------------------------*/
  138. halt:
  139.  
  140. rc = SockSoClose(socket)
  141. if (rc = -1) then
  142.    do
  143.    say "Error on SockSoClose:" errno
  144.    exit
  145.    end
  146.  
  147. exit
  148.  
  149. /*------------------------------------------------------------------
  150.  * some simple help
  151.  *------------------------------------------------------------------*/
  152. Usage: procedure
  153.    parse source . . me .
  154.  
  155.    say "usage:"
  156.    say "   " me "<server>"
  157.    say "is used to run the rxSock tester"
  158.    say
  159.    say "where:"
  160.    say "   <server> - tcp/ip host name running test_s (default = current host)"
  161.  
  162.    exit
  163.