in reply to Passing client information between multiple sockets...

The last time I answered this question, it was for a COBOL application running an HP3000 Image database application, but the principle for a pre-forking server is the same. Here was my response.

My approach is this

Have the application start, and open a listen socket

The application forks to create N children. They thus inherit the listening socket.

The children run like this:

initialize--open files, databases send message to parent that we initialized correctly while (1) { (optional) inform parent we are available accept on listen sock (optional) inform parent we are busy read data process transaction send response }
The parent just monitors the children for unexpected death. It can start a new server if one dies or if the number of available servers falls below some threshold.

There are a few little details, like how to shut down, making sure you don't get into a loop of restarting a crashing server, etc.

Your initialization would consist of opening the Telnet connection. The "process transaction" would consist of sending the query to the process's open Telnet session, getting the response and sending data back to the connection.

Replies are listed 'Best First'.
Re: Re: Passing client information between multiple sockets...
by matija (Priest) on May 14, 2004 at 17:27 UTC
    Note that sending the information to the telnet session and parsing the return information from there is best done by using Expect - it is meant precisely for communicating automatically with ostensibly interactive interfaces.