xinetd or any other suggestion
Jerry Feldman
gerald.feldman at hp.com
Mon Apr 11 08:07:08 EDT 2005
On Sunday 10 April 2005 3:28 pm, Anand Rao wrote:
> hi ,
> I have a text based interactive application that I need to run on a
> port.
>
> I had read some articles regarding the usage of xinet or inetd for
> this purpose .. any Good pointers or suggestions to start on this ?
There are a few ways you can do this.
One way is to have the application listening on the port. Depending on its
design, it could listen, then spawn a child (process or thread). The ssh,
http and smtp(mail) daemons are usually set up this way. Other comm
applications are initiated by xinetd (or inetd) where xinetd listens on
multiple ports, and initiates the appropriate daemon.
For the first pass, I would take the first approach. Internally, the
application would:
1. open a socket using socket(2) system call.
2. bind(2) to that port.
3. listen(2) on that port. When an application tries to connect to that
port, listen(2) returns 0 on success.
4. Upon successful return, use the accept(2) function to accept the
connection. Accept returns a non-negative integer on success that becomes
the file descriptor for subsequent read/write operations. At this point you
can fork a child process (or thread), while the main process (thread) goes
back and listens.
Remember in Unix and Linux, open files are passed to child processes, so the
listener process could be just a stub.
--
Jerry Feldman <gerald.feldman at hp.com>
Partner Technology Access Center (contractor) (PTAC-MA)
Hewlett-Packard Co.
550 King Street LKG2a-X2
Littleton, Ma. 01460
(978)506-5243
More information about the Discuss
mailing list