This is the Verse protocol and sample server implementations.
For more information, see the Verse web site.
Note: This section is only of interest to developers, who wish to build the Verse core themselves. If you have chosen a binary download, you will already have the server and can skip the rest of this section.
Running "make" here will build the API library, "libverse.a" (and its header file, "verse.h"). These two will then be used to build the reference Verse server binary, called "verse".
If you are more comfortable with SCons, and of course have it installed on your system, you can type "scons" instead.
The Verse server is a command-line program, without a graphical user interface. You simply start it, and it will immediately begin listening for incoming connections on a network socket. Here is how a typical invocation looks:
~> verse
If you don't ask it to do otherwise, the Verse server will start listening for UDP packets on its default port. The port number currently used by Verse is 4950.
Note: This is not an official registered, port number. It is possible that it gets assigned to someone else, in case Verse will need to change.
You can use the following command line options to control the server's operation:
"A test server, run on a cable modem, and offline during local daytime"
or something.
home,r6p1,linux,sweden,open
.
For example, here is how to start the server, register it with the default master server, and run on port number equal to 16333:
~> ./server -ms -port=16333
Here is a more complicated example, that uses an explicit master server address, and also sets both the description and tags:
~> ./server -ms:ip=master.example.net -ms:de="A test server, for the documentation" -ms:ta=example,docs
Options can occur in any order, with later options overriding earlier ones, in case of conflicts.
Verse uses a simple two-level numbering scheme to identify releases. There is a "release number", and a "patch level" on each release. The intent is that within a release, the API does not change and neither should the network protocol. Between releases, we might improve the API which will require application programmers to update their code to stay in sync. We can do non-API-altering changes within a release by increasing the patch level, for bug fixing and other things.
The symbols V_RELEASE_NUMBER
and V_RELEASE_PATCH
are integer literals that hold the values for the API you have, and can be
used (and displayed) in application source code as you see fit. There is
also a string, V_RELEASE_LABEL
, which is sometimes used.
To form a complete Verse version number, the above-mentioned symbols are
to be combined like so:
"r<V_RELEASE_NUMBER>
p<V_RELEASE_PATCH><V_RELEASE_LABEL>
".
So, the following variable values:
r2p51foo
".