so kill clients that join with to many channels. other wise patch enet to deny clients with more channels than allowed...
and you can think about upnp and nat-pmp to forward ports automatically... and don't be afraid to look at a simple function that practically can be read in english to see what it's doing... On Wed, Jun 24, 2009 at 6:30 PM, M. Rijks<[email protected]> wrote: > Thank you for your reaction. I'm sorry, Enet is rather black-box for me - > I'm relatively new to C++ (although not to programming itself) and I still > find it hard to find my answer in someone else's code, so I'm particularly > happy to leave the nitty-gritty network implementation to someone else! > > The 'game server' would actually be anyone who has a copy of the game and > hosting the session. These would be gamers, who are not always typically > familiar with (or able to influence) firewall configuration - that's why I > want to set up a server that lists the sessions online (this one in turn > *would* be administrated by someone who knows his business) and which will > help in establishing connections between hosts and clients using a technique > comparable to a STUN server. I'm using Enet for this as well. > > The thing is, the client opens up a session by connecting to another > computer, not knowing if it's a server listing the sessions or a host (since > I want them to be able to connect to hosts directly, transparently). I wish > this to service different kind of games - one game would be needing far more > channels than the other. But since they might connect to a host directly, > they'll open up a connection using their required amount of channels. The > server hosting the channels needs only one, but since it's the client that > sets the channel count, I'm afraid that it's going to run into heavy > resource use if a lot of clients connect simultaneously. I was looking for > information on how to limit that. > > I hope I have explained myself with this. > > ----- Original Message ----- > From: "Daniel Aquino" <[email protected]> > To: "Discussion of the ENet library" <[email protected]> > Sent: Wednesday, June 24, 2009 5:02 AM > Subject: Re: [ENet-discuss] Channel count at server > > > i think when a client connects you can see how many channels they > allocated in their peer stucture... if they don't follow your rules > then they aren't written by you or aren't friendly so just drop > them... or just leave it up to them... > > look into how enet initializes it's not very complex code... you can > clearly see that the number of channels is used to allocate space for > the list of channels (or other things)... So it's really just a way > to limit the amount of memory used if you know you only want 1 > cahnnel.. then there is no reason to allocate space for 255 channel > structs (or whatever it creates)... > > Are your end users going to run servers ? They should be technical > enough to simply forward a port so I don't see why STUN and nat > punching or anything would be needed... unless you want players to > directly connect to each other in a mesh... > > > > > On Tue, Jun 23, 2009 at 3:53 PM, M. Rijks<[email protected]> wrote: >> Hi everyone, >> >> Another query which I hope someone can shed some light on. >> >> My client library (which I intend to use for more than one game) connects >> either to a game server or a kind of lobby server that also acts as a STUN >> server, helping clients connect to game servers. To make things easier for >> end users, they will always connect to an IP not knowing whether it's the >> (STUN) lobby server or the game server - they retrieve a list of sessions >> (more than one in the case of a lobby, just one in the case of a game >> server) and when they select a session to join they are redirected to the >> game server (if it turns out they're on a lobby server and not on a game >> server). >> >> What I'm slightly concerned with is that in Enet, it seems that the client >> decides how many channels are used for communication. That's unfortunate >> because I'd like the client to always use a very large number (let's say >> all >> 255) of channels when connecting to a a game server, but for the lobby >> server it would need just one channel as there isn't much data to pass and >> it's all in one reliable sequence. Both clients and servers connect to the >> lobby server, and clients would only be connected for a short while >> however >> a lobby server could potentially serve as many clients as it can hold >> connections - and each connected client would occupy 255 channels... >> >> My questions are: >> >> 1. Am I correct to assume that the connecting client choses the amount of >> channels to open? The interface seems to confirm this. >> 2. If so, what are the repercussions performance-wise and memory-wise, how >> does this escalate? >> 3. Is there any way to make sure the lobby server 'sticks' to the single >> dedicated channel? >> >> Any help appreciated, thanks! >> >> >> _______________________________________________ >> ENet-discuss mailing list >> [email protected] >> http://lists.cubik.org/mailman/listinfo/enet-discuss >> >> > _______________________________________________ > ENet-discuss mailing list > [email protected] > http://lists.cubik.org/mailman/listinfo/enet-discuss > > _______________________________________________ > ENet-discuss mailing list > [email protected] > http://lists.cubik.org/mailman/listinfo/enet-discuss > _______________________________________________ ENet-discuss mailing list [email protected] http://lists.cubik.org/mailman/listinfo/enet-discuss
