Query port is never 27900 unless explicitly set by the server operator, default is 27046. Let me explain relevant networking settings from Drakan.cfg file, located in game's folder:
Code: Select all
set MasterServerList "gsm.qtracker.com:27900"
set ServerQueryPort "27046"
set ServerGamePort "27045"
set Client_GamePort "27910"
set Client_QueryPort "0"
set EnableAlternatePortSelection "1"
set NumAlternatePortSelections "20"
MasterServerList holds addresses of master servers to which the game server sends heartbeats to notify it that it's online and can be found by players. The port number next to address tells the game server to send them to master's port 27900 (the packet exits through ServerQueryPort). Gamespy is gone, so the only alternative today is Qtracker, as far as I am aware of. Until master server is convinced that the game server is functioning, it publishes its IP address on http://www.qtracker.com/server_list_det ... ame=drakan
. Easiest way today to find and connect to active servers is by using Qtracker application as Qtracker doesn't support Drakan's way of querying what servers are out there. Obviously, nobody plays Drakan online these days so the list is empty, but it does show there if properly configured. Drakan's dedicated server announces itself to the master by default, but if hosting the game via Host Game button in Multiplayer menu, the last option must be set to Yes if server is to be visible on Qtracker.
ServerQueryPort is the server port to which game clients and master server send query packet to get back information about the server such as its name, which map is on, how many players are on it etc. Only UDP protocol is used. This is the port that must be forwarded to the machine on which the game server runs, if the machine is behind the router, otherwise it won't be seen by outside world. It's also the port that should be entered when manually adding game servers. Qtracker will also display said port in server address.
ServerGamePort is the server port through which all communication between it and clients goes during gameplay. Both TCP and UDP protocols are used. This one must also be forwarded to machine running the server if behind router. That port must be specified when connecting to the game server using the command-line parameter "-connect", if not default. Useful if one wants shortcut to connect to favorite server right off the desktop. This port is indicated in Qtracker application as Connect Port.
Client_GamePort is the client-side port through which communication to the game server goes, again both TCP and UDP. If it's already used by other application, the game will by default try up to 20 alternative ports, as indicated by enabled EnableAlternatePortSelection option and EnableAlternatePortSelection set to "20". Client_GamePort can safely be set to zero, in which case the operating system automatically chooses the free port for the game, in that case, alternate port options are irrelevant. This is how client applications usually behave, since port known in advance is only relevant to servers.
Client_QueryPort isn't set by default but if it is, it opens the specified port (UDP) and listens to traffic. I don't know what it excepts to receive there, it's not documented anywhere, it might have been a leftover from some non-implemented function.