45 lines
1.1 KiB
Rexx
Executable File
45 lines
1.1 KiB
Rexx
Executable File
#!/usr/bin/env rexx
|
|
|
|
|
|
socket = socksocket('AF_INET', 'SOCK_STREAM', 'IPPROTO_TCP')
|
|
host.!family = 'AF_INET'
|
|
host.!addr = '127.0.0.1'
|
|
host.!port = '50010'
|
|
|
|
/* connect to the server */
|
|
if sockconnect(socket, 'host.!') < 0 then do
|
|
say 'SockConnect failed:' errno
|
|
exit
|
|
end
|
|
|
|
say 'type "X" to exit'
|
|
do forever
|
|
call charout , 'Send To Server: '
|
|
parse pull message
|
|
if message~upper() = 'X' then leave
|
|
/* send message to server */
|
|
if socksend(socket, message) < 0 then do
|
|
say 'SockSend failed:' errno
|
|
leave
|
|
end
|
|
/* get message from server */
|
|
ret = sockrecv(socket, 'data', 1024)
|
|
if ret < 1 then do
|
|
if ret < 0 then
|
|
say 'SockRecv failed:' errno
|
|
else
|
|
say 'Socket closed:' errno
|
|
leave
|
|
end
|
|
say 'Server responded:' data
|
|
end
|
|
|
|
/* close the socket connection */
|
|
if sockclose(socket) < 0 then
|
|
say 'SockClose failed:' errno
|
|
|
|
Exit
|
|
/* Rexx */
|
|
|
|
::requires 'rxsock' LIBRARY
|