View Full Version : Automatic multi-port browsing on client side?
judoman
01/07/01, 04:20 pm
Hi all.
I'll be hosting a LAN party soon, and my plan is to run many concurrent listen servers on the same box*.
Obviously I need to run each on a different port. Yet many of the people coming are newbies, and I don't want them to hassle with typing in the IP and port (because it'll ultimately be my hassle when I have to do it for them).
Is there a way to tweak the client's configuration to have it scan several (specified) ports rather than just 27960? Please 'edumacate' me! http://gameadmins.com/ubb/smile.gif
[Hmm. I just had an epiphany. Maybe the trick is to multi-home the server and then run each instance on its own IP. *** Nah, won't work: still only get one port 27960 regardless of the number of IPs]
TIA,
judoMan
* - check these server specs: 512 MB RAM, dual P2-400, SCSI Ultra RAID-5 w/3 9.1GB Barracuda's. Running Redhat 7.0. Dude, I'm blessed!
Quakethoven
01/08/01, 01:14 pm
All you'll need to do is start the games. They will make there own ports. The game will not run on the same machine with 2 of the same port & all you have to do for the clients is tell them to look in the (Local) listings with (all) set for the filter & show full & empty on aswell.
judoman
01/09/01, 03:06 am
Hi Quakethoven. Thanks for the reply!
Unfortunately, the Q3A browser (client-side) only sees the listen server running on port 27960. It misses all other 'LSs' running on different ports. I guess this makes sense as the browser is just sending out a broadcast to the subnet requesting replies from anyone listening on that particular port.
It misses all others, like 27000 (or whatever). It sure would be nice to set a config parameter to tell it to broadcast to other, specified ports!
BTW, FWIW, I tried the multi-home approach too, with odd results. I assigned two IPs to the single NIC (192.168.1.200 and 192.168.1.201), and then launched two listen servers to both run on the same port: 192.168.1.200:27960 and 192.168.1.201:27960.
The Q3A client running on another machine couldn't see either in the browser (!), but I could connect to each by specifying the IP :port combo.
Weird, weird. I don't know what it means.
If you have any other ideas (or anyone else)...please help!
TIA,
judoMan
[This message has been edited by judoman (edited 09 January 2001).]
anyBODY|OtH
01/09/01, 08:47 am
First, I am not sure if it makes a difference or not, but I thought a listen server (dedicated 1) never sent any packets out, and therefore will never show up in a browser, while a dedicated server (dedicated 2) will. could be way off base here, I have never run a listen server, but its name alludes to a passive type of configuration.
As far as work arounds, I can think of 2:
1. Gamespy/pingtool/others import text file lists of the servers. Create a text list, give everyone gamespy with a custom tab and go to town.
2. Give everyone a disk with a config on it (like connect.cfg) that has lines such as the following:
set tdm "connect 192.168.1.5:27001"
set ctf "connect 192.168.1.5:27002"
then let them connect with /vstr tdm for example. Not a heck of a lot better than typing port numbers though.
Sorry but those are all I can think of. The only other thing I would say is that if they are regular q3 players, I doubt they are unfamiliar with typing connect strings.
------------------
anyBODY|OtH
High Speed FreezeTag Servers 64.23.60.170:27960 and 27961
judoman
01/17/01, 03:16 am
[Long post warning!]
Hi Any. A belated thanks for your suggestions.
Well, the LAN Party has come and gone, and I’ve just about recovered. Man, I always forget how much freakin’ work they are. Good thing, I guess, because if I remembered, I’d never do it again http://gameadmins.com/ubb/smile.gif.
I’m thankful for your Gamespy suggestion, and I always kept it as an option of last resort. Fortunately, I didn’t need to use it, as I figured out how to run multiple Listen Servers on the same box and have ‘em show up in the in-game browser. The trick /was/ multi-homing the server (assigning multiple IPs to a single NIC) on Win2K, not Redhat 7.0.
Sounds wacky, but it’s true. My attempts to multi-home Redhat 7.0 failed miserably. Issuing a ‘+set net_ip <blah blah>’ in Q3A v1.27g under Linux would cause a remote Q3A client to not see the Listen Server in their browser, regardless of whether the server was multi-homed or not. BTW, I should mention the server’s IP was static; it was not obtained via DHCP. Also, I (think) I was using the +set net_port 27960 command, too.
Here’s a more concrete example: I ran two Listen Servers on Linux, both on port 27960, but one on IP 192.168.1.200, and the other on 192.168.1.201. A remote box on the same subnet, 192.168.1.100 (netmask 255.255.255.0), showed no local Listen Servers in the Q3A browser. I could, however, ping each IP from the remote box, and within Q3A, I could also specify the unique IP and port and have the distinct games start. Freakin’ strange.
The commands I used to multi-home my Linux box are:
ifconfig eth0:1 192.168.1.201
route add 192.168.1.201 dev eth0:1
(where 192.168.1.200 is the default).
Maybe I screwed it up, but I think not.
I decided to blow my Redhat 7.0 and install Win2K Advanced Server (ASE). The major motivation was game compatibility (like the James Fix for Q3A/TA), but also, I wanted to try the multi-home thing again.
Low and behold, multi-homing worked in Win2K ASE, with the same command lines used for Linux! As a result, I could launch multiple Listen Servers and have each show up on a remote client. Beautiful. I actually had upwards of 15 LS's running concurrently at various times, without any discernable performance degradation. [As an OT aside, UT had BIG lag issues when starting a level. I have to research this, but I think I recall seeing something about it wanting to check for companion servers or some such. Idiotic if true…]
Finally, I wanted to leave you (and everyone) with a tiny little WinNT/Win2K batch script for kicking off our Q3A Rocket Arena Tourney, since I haven’t seen anyone else post something like this.
First, make a copy of your ‘quake3.exe’ file and call it ‘q3a_tourney.exe’ (or some such). Put it in the same dir as ‘quake3.exe’. Next, go to http://www.sysinternals.com/ntw2k/freeware/pstools.shtml and download their most excellent ‘pskill’ tool. Third, create a customized Rocket Arena config file for each concurrent R.A. Listen Server you want to run. I created ten of ‘em using the following naming syntax: ra_tourney<num>.cfg. The basic difference between each was the LS name and MOTD.
Now the meat: create a batch file for starting the Listen Servers ‘en masse’.
for /l %%I in (0,1,9) do start q3a_tourney.exe +set fs_game arena +set sv_pure 0 +set bot_enable 0 +set dedicated 1 +set net_ip 192.168.1.20%%I +set net_port 27960 +exec ra_tourney%%I.cfg
This’ll start ten servers, numbered 0-9. The (0,1,9) part in the script above means start with 0, step 1 at a time, and stop at 9 (inclusive). The %%I part simply expands the variable number. The variable expansion is used twice, once to change the config file, so each server could have its own name and MOTD as mentioned, and again to specify the distinct (multi-homed) IP.
I stopped all servers by putting the pskill tool in a directory (which one doesn’t matter), making a shortcut to pskill on my desktop, and then updating the shortcut’s command line to the following: ‘<drive and folder location>\pskill.exe q3a_tourney’ (sans quotes). This killed off all ten q3a_tourney processes instantly, but didn’t touch any other quake3 (AKA quake3.exe) process(es). And THAT was the reason to copy and rename quake3.exe.
OK. I’ve wasted enough of your and everyone else’s time. I’m going to bed with my wife <nasty grin>.
Bye,
judoMan.
[This message has been edited by judoman (edited 17 January 2001).]
vBulletin® v3.6.9, Copyright ©2000-2010, Jelsoft Enterprises Ltd.