TCP/IP socket

TCP/IP socket programming with REXX

This is a sample project for TCP/IP socket programming with TSO/E REXX on z/OS and Reginald REXX on Windows. I've developed this solution when I have been in search of a replacement for the ISPF Workstation Agent. So consider this as a feasability study.

I've developed 2 servers and 2 clients, one of each for z/OS and the other for Windows. The functional scope is nearly identical, so you only have to decide what operating system(s) you're going to use.

The main functions comprise of

  1. STATUS - send the current status of the server to the client

  2. READLOG - send the current server logfile to the client

  3. COMMAND - send a command to the server and let it be executed

  4. WS2HOST - send a client file to the server

  5. HOST2WS - receive a file from the machine hosting the server

  6. SHUTDOWN - stop the server

In addition the Windows-based client has the capability to start the TCP/IP server.

The z/OS-based server runs within a batch job or as a started task and has no visual interface. It may be contacted by the z/OS-based client as well as by the Windows-based one. The z/OS-base client has an ISPF interface and uses an ISPF skeleton member for configuration purposes. The Windows-based server is developed with Reginald REXX and uses no GUI interface. It should be started with a command files. The Windows-based client is also developed with Reginald REXX but makes heavy use of GUI features builtin in Reginald. Both programs are configured by XML files.

Here are the files to play with. Keep in mind that this is a "work in progress". In addition some source code lines had to be made anonymous. So don't expect it to run smoothly out-of-the-box.

If you have difficulties with any of these files or with general concepts behind, feel free to contact me.