A simple TCP server implementation for lichat.
This is a simple, threaded, TCP-based server for the Lichat protocol.
Create a new server instance and pass it whatever settings you would like.
(defvar *server* (make-instance 'lichat-tcp-server:server))
Notable initargs of potential interest are:
:nameThe name the server goes by on its own network. Defaults to
:hostnameThe hostname to which the TCP listener should bind. The default is
:portThe port the TCP listener should listen on. The default is
:ping-intervalThe interval in which pings should be sent out to clients. The default is
:saltThe salt with which passwords are hashed. The default is an empty string.
:idle-timeoutThe number of seconds without a response from a client after which it is considered to have timed out. The default is
:flood-frameThe size of a flood prevention frame. The default is
:flood-limitThe number of allowed updates within a frame before flood limitation takes effect. The default is
:connection-limitThe number of connections in total that the server supports before dropping incoming ones. The default is
Once a server exists, it can be started to listen to incoming connections:
The server logs information via Verbose. If you set the REPL level to
:trace you should see a bunch of status messages being printed every now and again.
Once you're done with the server, you can shut it down again.