HP OpenVMS Systems

ask the wizard
Content starts here

Implementing Socket Listener, Socket Hand-off?

» close window

The Question is:

I've been trying, without much success, to find information and examples on
 writing a TCP/IP listener that passes each new connection to a new detached
 process. As far as possible, I would like to avoid OpenVMS system services in
 favour of standard socket
 and C rtl calls, since we use multiple platforms, but I do believe I will need
 to use sys$creprc. The listener itself poses no problems but the aspect that I
 am unsure of is how to pass the open TCP/IP channel into the newly created
 process. Can it be SY
S$INPUT/SYS$OUTPUT for the new process?
I realise I could avoid this problem by using a TCP/IP service instead of
 having my own listener, but I don't want to do that firstly for platform
 independence and secondly because the listener peeks at the start of the
 incoming data to decide what progra
m to start up.
I know that creating new processes on OpenVMS is more onerous than on UNIX but
 that is not an issue - the processes are long lived rather than there being a
 lot of them.

The Answer is :

  Topics including (2474), (3995), (4216), (6962), (7285) and others
  will likely be of interest to you here.
  The OpenVMS Wizard would tend to use sys$input and sys$output for
  program input and output -- attempting to use these for remote
  input and for program output might be tempting, but it tends to
  encounter problems when, for instance, the program stackdumps and
  inadvertently reveals something unexpected over the socket connection.
  Using sys$input and sys$output for input and output also means that
  these are available for debugging and particularly for logging-related
  purposes, something that will be of interest here.   For details, see
  topics (4640), (3681), (3031) and the topics referenced in (8028).

answer written or last revised on ( 24-NOV-2003 )

» close window