home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
RXSOCK.ZIP
/
test_c3.cmd
< prev
next >
Wrap
OS/2 REXX Batch file
|
1993-07-14
|
5KB
|
163 lines
/*------------------------------------------------------------------
* test_c.cmd :
*------------------------------------------------------------------
* 08-05-92 originally by Patrick J. Mueller
*------------------------------------------------------------------*/
trace off
/*------------------------------------------------------------------
* choose port number
*------------------------------------------------------------------*/
port = 1923
/*------------------------------------------------------------------
* initialize socket package
*------------------------------------------------------------------*/
parse source os .
if (os = "OS/2") then
do
if RxFuncQuery("SockLoadFuncs") then
do
rc = RxFuncAdd("SockLoadFuncs","RxSock","SockLoadFuncs")
rc = SockLoadFuncs()
end
end
if (os = "AIX/6000") then
do
rc = SysAddFuncPkg("rxsock.dll")
end
/*------------------------------------------------------------------
* get server name
*------------------------------------------------------------------*/
parse arg server .
if (server = "?") then
Usage()
if (server = "") then
server = SockGetHostId()
else
do
rc = SockGetHostByName(server,"host.!")
if (rc = 0) then
do
say "Error" h_errno "calling SockGetHostByName("server")"
exit
end
server = host.!addr;
end
/*---------------------------------------------------------------
* open socket
*---------------------------------------------------------------*/
socket = SockSocket("AF_INET","SOCK_STREAM",0)
if (socket = -1) then
do
say "Error on SockSocket:" errno
exit
end
/*------------------------------------------------------------------
* get socket options
*------------------------------------------------------------------*/
opts = "SO_DEBUG" ,
"SO_ACCEPTCONN" ,
"SO_REUSEADDR" ,
"SO_KEEPALIVE" ,
"SO_DONTROUTE" ,
"SO_BROADCAST" ,
"SO_USELOOPBACK" ,
"SO_LINGER" ,
"SO_OOBINLINE" ,
"SO_SNDBUF" ,
"SO_RCVBUF" ,
"SO_SNDLOWAT" ,
"SO_RCVLOWAT" ,
"SO_SNDTIMEO" ,
"SO_RCVTIMEO" ,
"SO_ERROR" ,
"SO_TYPE" ,
"garbage"
/*------------------------------------------------------------------
* get 'em
*------------------------------------------------------------------*/
say "retrieving socket options"
do i = 1 to words(opts)
opt = word(opts,i)
rc = SockGetSockOpt(socket,"SOL_SOCKET",opt,"value")
say " " left(rc,20) left(opt,20) "=" value
end
/*------------------------------------------------------------------
* set 'em
*------------------------------------------------------------------*/
say "setting socket options"
o.0 = 4
o.1 = "SO_LINGER"; o.1.1 = "1 1"
o.2 = "SO_TYPE"; o.2.1 = "STREAM"
o.3 = "SO_RCVBUF"; o.3.1 = "1000"
o.4 = "SO_DEBUG"; o.4.1 = "2"
do i = 1 to o.0
rc = SockSetSockOpt(socket,"SOL_SOCKET",o.i,o.i.1)
say " " left(rc,20) left(o.i,20) "=" o.i.1
end
/*------------------------------------------------------------------
* get 'em
*------------------------------------------------------------------*/
say "retrieving socket options"
do i = 1 to words(opts)
opt = word(opts,i)
rc = SockGetSockOpt(socket,"SOL_SOCKET",opt,"value")
say " " left(rc,20) left(opt,20) "=" value
end
/*------------------------------------------------------------------
* ioctl
*------------------------------------------------------------------*/
say
say "testing ioctl('FIONREAD')"
rc = SockIoctl(socket,"FIONREAD","readable")
say " " left(rc,20) left("FIONREAD",20) "=" readable
say "testing ioctl('GARBAGE')"
rc = SockIoctl(socket,"GARBAGE","readable")
say " " left(rc,20) left("GARBAGE",20) "=" readable
/*------------------------------------------------------------------
* close socket (and catch signals)
*------------------------------------------------------------------*/
halt:
rc = SockSoClose(socket)
if (rc = -1) then
do
say "Error on SockSoClose:" errno
exit
end
exit
/*------------------------------------------------------------------
* some simple help
*------------------------------------------------------------------*/
Usage: procedure
parse source . . me .
say "usage:"
say " " me "<server>"
say "is used to run the rxSock tester"
say
say "where:"
say " <server> - tcp/ip host name running test_s (default = current host)"
exit