Generic Function | Package: net.rpc | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## rpc-open-server

Arguments: (server rpc-socket-server) &key confirm

Arguments: (server rpc-datagram-server) &key confirm

This function accepts one connection from a remote client. In a typical situation, a server would loop on a call to this function. The function rpc-open-listener implements such a loop. This function is useful if an application needs behavior that is not provided by rpc-open-listener.

When server is a subclass of `rpc-socket-server`, this method waits for a connection and returns the resulting port object.

When server is a subclass of `rpc-datagram-server`, the effect of this method is to wait for one datagram message to arrive. The message could be a new RPC call, the result of some previous RPC call, or an RPC request. Unless this method is called repeatedly in some loop, the Lisp host will be very unreceptive to remote calls and requests.

The keyword arguments are the same as make-rpc-server, and are used to update the settings in the server instance.

A passive socket is opened if necessary, and closed if appropriate. If begin is t, start receiver and sender processes for the port. The begin argument always defaults to t, unless it is explicitly passed as `nil` in each call.

If connect-action is `:return`, the port object is simply returned as the value of the call.

If connect-action is `:call`, then two values are returned:

- The port instance
- The result of calling the function supplied as connect-function. The connect-function is called with the port instance as the first argument and the value of connect-args as the remaining arguments.

If connect-action is `:process`, then two values are returned:

- The port instance
- An Allegro CL process object - a new process is started and the connect-function is called in the new process with the same arguments as in the `:call` case.

The confirm keyword argument: when this argument is non-`nil`, the Lisp RPC protocol includes additional confirmation messages that track the progress of a remote call in more detail (see rpc-query for more details). The default value is `nil`.

A non-`nil` value may be applicable when using a very slow network connection. In such cases more detailed progress information could be useful.

This argument was not available in releases prior to 6.2, where this function worked as if this argument was specified non-`nil`.

See also rpc.htm for general information on the Remote Procedure Call utility in Allegro CL.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version