Chocolate Software Forums

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Only 1 person can connect !  (Read 7882 times)

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Only 1 person can connect !
« on: September 13, 2004, 04:38:17 PM »

Hey Guys,

I've got a problem with my new FSHost 3. 0 server. Only 1 person can connect at a time. It doesn't matter if they are external or internal to the LAN. The first person on the server get's on with no problem. The second person will timeout when connecting. The first person will see the second person connect, then leave 30 seconds later.  I've forwarded the following ports..

23456 -> 23456
47624 -> 47624
2300 -> 2400

I have disabled the XP firewall and enabled uPnP. The server is set to 20 players. I've tried various other ports without success. I am not using FS2004 on this machine, it's running FSHost only.

The weird thing is.. people external to my lan can connect.. this seems to rule out a firewall problem. If I am the second person to connect, I get the same timeout, even though I am on the LAN.

Any help appreciated.

Logged

Russell Gilbert

  • Administrator
  • Guru
  • *****
  • Offline Offline
  • Posts: 1476
    • FSHost
Re: Only 1 person can connect !
« Reply #1 on: September 13, 2004, 06:39:27 PM »

Hi,

Ok, a couple of things you can check...

First, you didn't mention whether you forwarded the UDP or TCP ports (or both).

Also, you didn't mention port 6073, which is sometimes needed.

I would try limiting your tests initially to just people outside your LAN (and don't connect to FSHost yourself).  If the ports you're forwarding are in a router (you didn't mention if it was a router or a firewall), and they're all forwarded to the machine running FSHost, then you'll have a problem when you mix internal and external players.  This is because when data comes back in from the internet, your router will be sending it all to the FSHost machine, and the other internal machines will never get any of it.

As a test, try this, using only FS2004...
  • Forward only UDP port 23456 to the FSHost machine.  Remove the other forwards you mentioned.
  • Try connecting two external players and see if it's ok.  Be sure they're both using connect port 23456 in FS2004.
  • Then connect one internal player but set its FS2004 to use a connect port of 23457.  Don't change anything in the router.  If you have problems mixing internal and external at this point, try forwarding UDP 6073 and UDP 2302-2400 to the internal player's machine.  Don't change any port settings in the router other than adding these.
What I'm thinking is that you need to forward 23456 to FSHost, since that's the primary port people will be connecting on.  But you need to have a way of getting data from the router to the internal PCs also, and if you forward everything to FSHost, they'll never get any data.  By connecting them on a non-standard port (23457), it'll make DirectPlay start using the set of "alternate" ports, which are 6073 and the range of 2302-2400.  If you forward those to the internal machine, then hopefully you can mix internal and external.

Now, this is a bit of a shot in the dark, since I haven't actually tried it.  But if it works, you'll then have to do some tricks to get multiple internal PCs connected while multiple external PCs are connected.  (you can't forward everything to one individual PC, or the other ones won't get data)  You might look into DxPort at that point, since it allows you to control which ports in the 2302-2400 range get used by DirectPlay. The idea is to use DxPort to assign particular ports to particular internal PCs, and then forward only those ports to those machines.  http://www.puffinsoft.com/

More info about the ports DirectPlay uses with FS2004 is here:  http://www.chocolatesoftware.com/fshost/?help#ports

Russell
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #2 on: September 14, 2004, 11:30:15 AM »

First of all, thanks for your help Russell :)

Quote
First, you didn't mention whether you forwarded the UDP or TCP ports (or both).


Both

Quote

Also, you didn't mention port 6073, which is sometimes needed.


OK done, but made no difference.

Quote

I would try limiting your tests initially to just people outside your LAN (and don't connect to FSHost


OK, I'll see if I can find some people to join. If anyone reading this wants to try it, the IP is: 82.152.39.93

Quote

If the ports you're forwarding are in a router (you didn't mention if it was a router or a firewall), and they're all


It's a Linksys ADSL Router.

Quote

forwarded to the machine running FSHost, then you'll have a problem when you mix internal and external players.  This is because when data comes back in from the internet, your router will be sending it all to the FSHost machine, and the other internal machines will never get any of it.


OK, I assume you mean the data from client to client (p2p) not data for the server. What port does the Peer to Peer function on ? Does the server use the same port ?

Quote

As a test, try this, using only FS2004...


Ok, I'll give this a try.


Quote
m thinking is that you need to forward 23456 to FSHost, since that's the primary port people will be connecting on.  But you need to have a way of getting data from the router to the internal PCs also, and if you forward everything to FSHost, they'll never get any data.


That makes sence.

Quote

Selecting them on a non-standard port (23457), it'll make DirectPlay start using the set of "alternate" ports, which are 6073 and the range of 2302-2400.  
[/quote

Get who to use a non standard port.. external or internal people ?

Quote

some tricks to get multiple internal PCs connected while multiple external PCs are connected.  (you can't forward


It'll only ever be 1 pc connecting internally.


OK, so I have a few things to try I guess. If you could please get back to me about my question above (About who needs to use no standard ports).

Many thanks

Marc
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #3 on: September 14, 2004, 11:32:55 AM »

Quote
By connecting them on a non-standard port (23457), it'll make DirectPlay start using the set of "alternate" ports, which are 6073 and the range of 2302-2400.  If you forward those to the internal machine, then hopefully you can mix internal and external.


Wont forwarding ports 2302-2400 to the internal client mean that FS2002 pilots won't be able to join the server as their packets will be going to the internal client rather than the server ?
Logged

Russell Gilbert

  • Administrator
  • Guru
  • *****
  • Offline Offline
  • Posts: 1476
    • FSHost
Re: Only 1 person can connect !
« Reply #4 on: September 14, 2004, 11:10:54 PM »

Quote
OK, I assume you mean the data from client to client (p2p) not data for the server. What port does the Peer to Peer function on ? Does the server use the same port ?

Actually every program connected to the session works the same way, including FSHost -- they're all p2p clients, talking to each other, so all the ports are the same.  The only exception to this is when FS2002 is looking for a session -- it uses TCP port 47624 for searching, and then it switches to 2300 to 2400 when joining.

Quote
It'll only ever be 1 pc connecting internally.

If that's the case, this would be a whole lot simpler if you could run FS and FSHost on the same machine.  Is that possible?  Then you could just forward everything to the one machine.

Quote
Wont forwarding ports 2302-2400 to the internal client mean that FS2002 pilots won't be able to join the server as their packets will be going to the internal client rather than the server ?

Well, first, FS2002 uses different ports to FS2004 -- see the FSHost Help page I mentioned earlier.  But if we stick to FS2004 for these tests, then here's how it all works...

When FS2004 connects, it uses UDP port 23456 (unless the user has changed the Connect port by clicking "Client Settings" on the multiplayer screen).  If FSHost is also set to use UDP 23456 (which it is by default), then the two programs will happily talk on 23456 and stay on that port forever, and that's the only port that's ever used.

However, it gets more complicated if FS2004 and FSHost are using different ports.  Let's say FS2004 is using the default 23456 and FSHost is using 23457 for this example...  Now what happens is that FS2004 sends a request to FSHost on 23456, but FSHost doesn't answer.  Then FS2004 sends a request on the "alternate" port, which is UDP 6073.  FSHost then sees this request and sends back a reply on a (sorta) random port in the range of UDP 2302 to 2400 -- let's say it's 2350.  The two programs then stay on 2350 for the rest of the session, and that's the only port that's used.

This same "using 6073 to switch to a random 23xx port" scenario can happen any time the two programs aren't using the same ports, or if one can't send data to the other on the "FS2004 preferred" port, which is 23456, or whatever you have it set to.  For example, if you have both set to 23457, they'll happily stay on that port.  But if ever they can't talk on the FS2004 preferred port, they switch to the 23xx range.

So my thinking was that if you set 23456 to go to the FSHost machine, then all the external machines could hopefully use that, as long as they hadn't changed their connect port in FS2004.  And if 6073 and 2302-2400 were forwarded to the internal FS2004 machine, then it could connect to the session using some other port such as 23457, which would cause it to do the whole switching ports thing, and it'd end up on something like 2350.  The idea then is that any new external players would try to talk to the internal player on 2350, which was correctly forwarded to the internal machine and not to FSHost.

Complicated, isn't it :-)

Russell
« Last Edit: September 14, 2004, 11:11:33 PM by russell »
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #5 on: September 15, 2004, 06:07:35 AM »

Quote

Actually every program connected to the session works the same way, including FSHost -- they're all p2p clients, talking to each other, so all the ports are the same.......

If that's the case, this would be a whole lot simpler if you could run FS and FSHost on the same machine.  Is that possible?  Then you could just forward everything to the one machine.


Sadly, not an practical option. I want to run a 24/7 server and my gaming rig can't really stay on24/7. The server in my Node0 however can.

Quote

Well, first, FS2002 uses different ports to FS2004 -- see the FSHost Help page I mentioned earlier.  But if we stick to FS2004 for these tests, then here's how it all works...


OK, that all makes sence. All I need to do now, is get more than one external person on my server to check that it works fine for more than one external person (easier than it sounds for a new server.. not many players around :) )

So, I have done the following...

Port 23456 -> FSHost
Port 47624 -> FSHost
Port 6073 -> FSHost
Port 2300-2301 -> FSHost

Port 2302-2400 -> Internal Client


So, Mr. External Client comes along on the default port, connects to the server without problem. The server talks to him on port 23456 (for FS2004). Now, I come along and connect on port 23457. My FS2004 doesn't find the server so try's port 6073. The client/server then have a chat and decide on a port in the 2302-2400 range. All is well in the world :)

OK, I'll keep en eye on the server and see if I can get more than two people on. I'll report back when I get more !

Thanks again for your help :) I wish I got this sort of support everywhere !

Cheers

Marc
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #6 on: September 15, 2004, 02:48:04 PM »

Arg, this is driving me nuts. It's kinda working, but kinda not working.

I had 4 people online.. 5th could not join. Tried about 4 times. Gave up

Then, after a while, another 5th person joined...

6th person could not join.... and that's as far as I got.

Now, when there was 2 people on.. I joined without problem. Now there is 5 people on, I can't !

I am very confused as to what is going on :\
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #7 on: September 15, 2004, 02:49:18 PM »

Now that one person has left, I can get in !! What the hell !!

Any ideas to this erratic behaviour ?

Cheers

Marc
Logged

NotInventedHere

  • Newbie
  • *
  • Offline Offline
  • Posts: 7
Re: Only 1 person can connect !
« Reply #8 on: September 15, 2004, 02:53:54 PM »

Now I have 7 people on, and the 8th can't get on. He's tried about 6 times now :(
Logged

Russell Gilbert

  • Administrator
  • Guru
  • *****
  • Offline Offline
  • Posts: 1476
    • FSHost
Re: Only 1 person can connect !
« Reply #9 on: September 16, 2004, 08:38:39 PM »

I think I would try a simpler case to start off with then.  Maybe try forwarding all the relevant ports to the FSHost machine, and make sure people outside your LAN can connect ok by themselves.  Once that's working, you can start experimenting with forwarding other ports and using FS2002.

Keep in mind though, that if any of those people are using a different Connect port than 23456, they'll switch over to the 6073 / 2302-2400 range, which won't work if you're forwarding those ports different places.  Get them to check, by clicking Client Settings on the multiplayer connect window.

Also, I think when you do try the test again with your internal machine, you might try forwarding 6073 to the internal machine as well, since FSHost should (hopefully) only need 23456.  6073 should be forwarded to wherever 2302-2400 is.

If you have access to a packet sniffer or port watcher, that can be a help also, because then you can see exactly which ports each person is using, and then you might be able to "see" what's happening rather than guess.  It's a difficult problem though -- I know.

Russell
Logged
Pages: [1]   Go Up