Newsgroups: comp.lang.lisp,comp.lang.franz.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!news.duke.edu!convex!cs.utexas.edu!howland.reston.ans.net!news.sprintlink.net!EU.net!uunet!franz.com!franz!smh
From: smh@Franz.COM (Steve Haflich)
Subject: Re: Multi-processing and sockets in Allegro Common Lisp
In-Reply-To: poirot@conan.jsc.nasa.gov's message of 22 Oct 1994 13:29:57 GMT
Message-ID: <SMH.94Oct26133554@vapor.Franz.COM>
Sender: news@franz.com
Nntp-Posting-Host: vapor
Organization: Franz Inc., Berkeley, CA
References: <1994Oct20.144838.26829@news.unige.ch> <38b44l$l8s@pendragon.jsc.nasa.gov>
Date: Wed, 26 Oct 1994 20:35:53 GMT
Lines: 32

In article <38b44l$l8s@pendragon.jsc.nasa.gov> poirot@conan.jsc.nasa.gov (Daniel Poirot) writes:

   From: poirot@conan.jsc.nasa.gov (Daniel Poirot)

   In article <1994Oct20.144838.26829@news.unige.ch>,
   BAUJARD Olivier <baujard@cui.unige.ch> wrote:

   >I'm interested in making socket connections between several processes in
   >Allegro Common Lisp. Basically, I want to create several processes in a
   >Lisp image. In each process, I want to open a socket (either Unix or
   >Inet) and to wait for connections on that socket. Is it possible to
   >use (with or without modifications) the ipc functions provided with
   >Allegro Common Lisp ? Did anybody work on the same topics ?

   (ipc::open-network-stream) works for me...

This is unfortunately the answer to a slightly different question.
ipc:open-network-stream establishes connections as client, but the
original question was about server code.

There is server code in the same ipc.cl source file (see
ipc:start-lisp-listener-daemon and friends) but the code is not quite
general as written.  Some pieces of the emacs-lisp interface startup
protocol were glued onto the server startup protocol, and there is
also a primitive but non-general authorization scheme that would get
in the way of generalized use.  I've been meaning to clean these
things up for some time and have done so for the next release.

Meanwhile, you can extract pieces of the source code from ipc.cl as a
model to construct your own socket server.  You can deal with the any
issues of authorization, etc., as appropriate to your needs and
environment.
