{Note: it gets sorta confusing between the list server and the server list. The list server is the computer that holds the server list, and the server list is the list of currently running Jazz2 games.}


First of all… What the list server does, and how it is important:

The list server is the main computer that holds the information of all the JJ2 games that are running on the internet. When you start a Jazz2 internet game, your game is added to the server list. When other users want to join an internet game, their computer gets the list of running JJ2 servers from the list server. Without the list server nobody would know what games were running unless they contact other people by different means.


How the list server works:

When JJ2 starts an internet game, it first randomly selects one of the list servers listed in your computer’s registry and tries to connect to it. If it cannot connect to the first one it tries, it continues to randomly select a list server untill it either manages to connect to one, or it runs out of possible server. Once the game manages to find a list server, it begins a dynamic connection to the server through remote port 10054. The game notifies the server that it is running a game, and tells it such things as the host computer’s IP address, whether it’s a public or private server, the version of Jazz2 (either 1.21 or 1.24), the mode of gameplay (e.g. battle, CTF..), the maximum number of players, and the name of the game server. It maintains this connection for as long as the game is running, and updates the list server on how many people are in the game. Once the game is stopped the list server removes that game from the server list.

When a user goes to join an internet game, Jazz2 contact the first list server it can from those listed in the registry and connects on the remote port 10053. The list server then sends back the information in the server list in binary mode and terminates the connection.


How the list server work as a cluster:

Most semi-recent Jazzers might not know that there were ment to be serveral JJ2 list servers since we have only had the Logicware one in service for a very long time. Anyway, the JJ2 list server was designed to be run from various servers all over the world, all backing each other up so that if a list server went down, then the server list would still be maintained on the other servers. The actuall Jazz2 server list program (or at least the one I have) is just a small program “written in C, uses WinSock32 and occupies hardly
any memory, processor time or bandwith.” Each computer that runs the list server program has a list of the other list servers. They maintain communications with each other (using port 10056) to make sure they all have the same game servers listed. When a game server connects with one of the list servers, that listserver simply notifies the other list servers to add that game to their lists, and updates them regularly. When the original list server unlists a game, likewise it tells the other list servers to do so too.


Telnetting to the list servers:

There are two additional ports that the list servers listen and respond to, and those you can access yourself via telnet (or some other plain text communication device). Port 10057 will return a plain text version of the servers in the list in the following format:

IP_ADDRESS:PORT [local/mirror] [public/private] [battle/ctf/gem/unknown] VERSION [s/ ] UP_TIME [PLAYERS/MAX_PLAYERS] SERVER_NAME
example:
24.25.206.117:10052 local public battle 1.21 21967 [3/32] Battle Server

IP_ADDRESS – the local IP address of the game server computer.
PORT – always 10052
local – the list server you got this information from is in communication with the game server
mirror – a different list server is in communication with the game server, and it is being mirrored on this list server
public/private – whether the game is a public or password protected game
battle/ctf/… – the mode of gameplay
VERSION – the base version of the game server, for 1.21-1.23 game server is shows 1.21, and for TSF servers it shows 1.24
s/ – if there is an ‘s’ displayed, then that means that it’s a shareware game, otherwise it just shows a space
UP_TIME – The amount of time (in seconds) that the game has been listed
PLAYERS – The number of players currently in the game
MAX_PLAYERS – The maximum number of players allowed in the game
SERVER_NAME – The title of the game server

The other port you can Telnet is 10055. This is the general status port of the list server. Here’s an example of what mine looked like at the time I wrote this:

Jazz Jackrabbit 2 List Server v1.01 of Feb 25 1999 at 18:12:23

Host name : monolith.idlegames.com
Host address : 24.25.206.117 port 10057
Up time : 0 Days, 6:24:29
BPS in/out : 9 / 2

Servers in list : 3
Mirrored servers : 2
List packet size : 79 Bytes

Lost servernet connections : 0
Servernet connection attempts : 421 ( 0% success)
Average servernet uptime : 0 Days, 0:00:00
Pings sent/received : 104/98

Status connections served : 59
Raw ASCII lists served : 233

Number of Unknown games : 331 ( 2%)
Number of Battle games : 9624 ( 74%)
Number of Treasure games : 1094 ( 8%)
Number of Capture the flag games : 1858 ( 14%)
Total number of games : 12907

Connections open : 1
Total list connections : 974
Total dynamic server connections : 736
Total connections dropped : 0

Total errors : 0
Last error : No error

Connections to other list servers [1/6]
1. jazz.logicware.com (0 Days, 6:24:25)
2. flea.idlegames.com
3. albertolovesbugsy.idlegames.com
4. list.jazzjackrabbit.com
5. monolith.idlegames.com
6. mail.godgames.com



And I think that’s about all I can say about the list server, besides that your list of list servers should be listed in one of the following registry locations:
HKEY_LOCAL_MACHINE\Software\Epic MegaGames\Jazz Jackrabbit 2\1.23\List Servers
HKEY_LOCAL_MACHINE\Software\Epic MegaGames\Jazz Jackrabbit 2 Secret Files\1.24\List Servers
HKEY_LOCAL_MACHINE\Software\Epic MegaGames\Jazz Jackrabbit 2 Special Edition\1.24\List Servers
HKEY_LOCAL_MACHINE\Software\Epic MegaGames\Jazz Jackrabbit 2 Holiday Hare ’98\1.23\List Servers
or something like those.


Comments

Monolith on July 11, 2001 06:00

Port 10052 isn’t used by the list servers, it’s used by Jazz2 to connect to the other players’ computers.

blaster on July 11, 2001 06:00

<font face=“comic sans ms”>err…. YEAH! :p. where’s that port 10052 for then???? <br> <br>
hey, if u click <a href=“telnet://jazz.logicware.com:10057”>here</a> you will get the list-server, but if you click <a href=“telnet://jazz.logicware.com:10056”>here</a> you will ge a weird text..;) <br> <br>
Blaster

Monolith on July 12, 2001 06:00

Yes. You can use my list server right now in fact, as it is fully operational.

Alberto on July 12, 2001 06:00

Blaster, 10052 it’s for the game, so it can connect clients to servers <br>
And 10056 u get that text cause is the one used to sync with the others servers list <br>
Flea and me are syncing with Monolith <br>
Well, we did once, but now I have problems mirroring so =P

Alberto on July 12, 2001 06:00

Cesar, Xjj2 and Jazz 2 use Winsock <br>
If you have Visual Basic u can do that too <br>
Or any other program to program programs <br>
LOL

Alberto on July 12, 2001 06:00

Btw Mono, you forgot that there are versions like 1.23 and 1.24 x in the servers list =P <br>
1.23 is Holiday Hare 98 <br>
1.24 x is CC (Christmas Chronicles)

blaster on July 12, 2001 06:00

aha, just one more question, if the jazz.logicware.com listserver is down, can we still use yours??(if that is true, i will add ur server to my list-server-patch) <br> <br>
Blaster

Cesar on July 12, 2001 06:00

Amazingly that jazz2.logicware.com has served over 100,000 kinds of games so far. <br> <br>
What I don’t understand is how Jazz2.exe and Xjj2.exe “talk” to the listservers to add our server to the list to display to the public.

Alberto on July 13, 2001 06:00

My servers list is up only for some people since I get problems at mirroring.

Alberto on July 13, 2001 06:00

And I already made that servers patch, mean while only Mono has it

blaster on July 13, 2001 06:00

<font color=“00aa00” face=“comic sans ms”>hey, i’ve added the serverlist from monolith to my patch, you van download it <a href=“http://www.geocities.com/jazz24ever/jazz2listservers.zip”>Here</a>! if you open the .reg file it will automaticly register the server-lists in this way: first it will use the logicware server. if that one is down it will connect to the server of monolith and after that one it will try to connect to list.jazzjackrabit.com(without succes, becouse that server isn’t working for a year, but just in case) i’ve left the serverlists of flea and albertolovesbugsy out of my patch becouse they didn’t work(sorry guys) <br> <br>
Blaster

Cheeze on August 04, 2001 06:00

Ceaser, the listservers and jazz send each other ascii junk to each other. Jazz sends info to the listservers on port 10054, and gets info on port 10053. 10057 is a human-readable version of port 10053, although if you ever look at 10053, it’s really not that hard to figure out. <br> <br>
As for port 10054, i did a little bit of research a while back to help out with the version of xjj2 that can send info to the listservers. I’ve got my personal notes, which i would put up, but i think i’ve lost them ;p. But luckily, i went on my old PC and found the old email i sent pennywise, which has most all of the info. If you’d like to see it, i’d be glad to forward it. <br> <br>
~Cheeze

Cataphract PT on August 12, 2001 06:00

But somehow it knew what to do: <br>
<pre>9:08:41 AM: JAZZ2.EXE: outgoing <br>
9A E6 3 0 64 87 0 0 32 34 20 20 . . . . d . . . 2 4 (space) (space) <br>
9:08:41 AM: JAZZ2.EXE: outgoing <br>
9B EF 3 1 64 87 0 0 32 34 20 20 . . . . d . . . 2 4 (space) (space) <br>
9:08:41 AM: JAZZ2.EXE: outgoing <br>
9C F8 3 2 64 87 0 0 32 34 20 20 . . . . d . . . 2 4 (space) (space) <br>
9:08:41 AM: JAZZ2.EXE: incoming <br>
B5 F4 4 0 5F 87 0 0 C5 . . . . _ . . . . <br>
9:08:41 AM: JAZZ2.EXE: incoming <br>
74 BC 4 1 60 87 0 0 82 t . . . ` . . . . <br>
9:08:41 AM: JAZZ2.EXE: incoming <br>
B2 F3 4 2 5D 87 0 0 C2 . . . . ] . . . .</pre>

CaTaPhRaCt on August 12, 2001 06:00

You’re right Cheeze, Jazz2.exe doesn’t use port 10057. But then how does it know the IPs that it should “ping”? <br>
<pre>9:08:40 AM: JAZZ2.EXE: incoming <br> 7 4C 49 53 54 1 1 . L I S T . . <br>
9:08:41 AM: JAZZ2.EXE: incoming <br>
13 63 7D 23 4 44 27 69 43 65 44 73 20 53 65 72 . c } # . D ‘ i C e D s S e r <br>
76 65 72 F 3D 4A E5 D5 44 27 4B 41 52 4E 20 44 v e r . = J . . D ‘ K A R N D <br>
42 5A 14 75 CE 19 18 44 27 42 61 74 74 6C 65 20 B Z . u . . . D ‘ B a t t l e <br>
53 65 72 76 65 72 S e r v e r</pre> <br>
I see no IP info here…

Link on August 19, 2001 06:00

Cataphract, if you look in the first message (JAZZ.exe incoming, where it lists the servers), take a look at some the hex values for iCeDs server: <br> <br>
63 7D 23 4 <br> <br>
Converted to decimal that is: <br> <br>
99 125 35 4 <br> <br>
and…if you do some switching aorund and punctuation: <br> <br>
4.35.125.99 <br> <br>
which is iCeDs IP address. Stuff doesn’t always have to be sent in ASCII form…

Spaz Boy on October 29, 2001 06:00

Just a little addition ;): Unfortunately, the program doesn’t work with routers, thought it says to free the ports to make it work. Monolith told me his didn’t work, and then Alberto and I tried like a billion times and couldn’t get any results. If you know some stuff about routers and ports….the only way to get it to ‘Connect’ was to tell it my IP is 192.168.1.11 (Which happens to be my LAN IP) the problem with this is, only other users on my LAN could get my listserver…in other words, the entire JJ2 community would have to be hooked up to my router using my internet (and lagging me) for me to host it. If you can find a way around this, then great, just tell me then I can put one up 24/7 (almost, the times when my computer isn’t at the ‘blue screen’ which Win XP supposedly gets rid of…) As Monolith said, it was written in C so we might be able to code a working version. Well, I am off to check the files and try and see if it is using any other ports besides the ones listed!

Bjarni Cool on April 13, 2002 06:00

Demo: (Nothing for “but what?” as Somebody´s weakness. I´m not hurt nobody)

_______________________________________

How the list server works:

When JJ2 starts an internet game, it first randomly selects one of the list servers listed in your computer’s registry and tries to connect to it. If it cannot connect to the first one it tries, it continues to randomly select a list server untill it either manages to connect to one, or it runs out of possible server. Once the game manages to find a list server, it begins a dynamic connection to the server through remote port 10054. The game notifies the server that it is running a game, and tells it such things as the host computer’s IP address, whether it’s a public or private server, the version of Jazz2 (either 1.21 or 1.24), the mode of gameplay (e.g. battle, CTF..), the maximum number of players, and the name of the game server. It maintains this connection for as long as the game is running, and updates the list server on how many people are in the game. Once the game is stopped the list server removes that game from the server list.

When a user goes to join an internet game, Jazz2 contact the first list server it can from those listed in the registry and connects on the remote port 10053. The list server then sends back the information in the server list in binary mode and terminates the connection.

How the list server work as a cluster:

Most semi-recent Jazzers might not know that there were ment to be serveral JJ2 list servers since we have only had the Logicware one in service for a very long time. Anyway, the JJ2 list server was designed to be run from various servers all over the world, all backing each other up so that if a list server went down, then the server list would still be maintained on the other servers. The actuall Jazz2 server list program (or at least the one I have) is just a small program “written in C, uses WinSock32 and occupies hardly

any memory, processor time or bandwith.” Each computer that runs the list server program has a list of the other list servers. They maintain communications with each other (using port 10056) to make sure they all have the same game servers listed. When a game server connects with one of the list servers, that listserver simply notifies the other list servers to add that game to their lists, and updates them regularly. When the original list server unlists a game, likewise it tells the other list servers to do so too.

_______________________________________

Somebody: I don´t like personal attack

kezysik on December 02, 2005 15:56

poland:czemy gra sie nie włancza i jak sie pobiera