sending the same data to different computers

Started by
5 comments, last by hplus0603 10 years, 6 months ago

I would like to know what tutorials are out there that explain how to send the same data to different computers( only suing one send() ) with TCP sockets on ipv 4 and 6

Advertisement

You can't do multicast or broadcast via TCP, it only works with UDP on Local networks (LANs). You can't do multicast or broadcasts on the internet at all unless you are in full control of every single router between the sender and all recievers.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

For all practical purposes, you can't do it.

The only thing I can think of that might be close is to have the logic processor (computer/core0 send a single network message to a dedicated communication processor which then marshals data to be sent to some number of registered clients taking the load off the game mechanics processor.

There is extra delay but this kind of thing is frequently done on MMORPGs where Client Nodes do alot of the client operations /bookkeeping/connection maintenance/prevalidation/etc....

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

taking the load off the game mechanics processor


If that is the only think you're trying to offload, it's unlikely to be a win. The bottleneck will be the network cable, not the CPU throughput.
If you build a full gateway system where client connection/book-keeping/etc is done, and gateways connect to game servers as intermediaries, that's more common because it actually gives some gains (one of which is that game simulation servers can be isolated from the Internet.)
enum Bool { True, False, FileNotFound };

Of course you could have that one then 'tree out' into additional pipes ( every Nth msg goes to one of several load leveling network processors each with its own outboud pipe)

But I was thinking of various keepalives, sorting, message grouping (fewer teenie packets) and subsetting operations the network node might be able to offload.

Some of the MMORPG Ive seen recently start to choke because they arent just sending position/action update info, but also more dynamic specific object info as the player (or various objects) moves. Future game will probably have an explosion of the amount of data sent, but as you mention 'big' games already are clusters of machines (and have been since the first mmorpgs -- wasnt it Everquest at one tiem that had hundreds(1000s?) of off-the-shelf PCs running their client layers??)

As for the original single send question, you can 'send' via a single socket internal shunt from one core's process to another and THAT process can do the multiple sends (subscription list out to clients).

.

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

Some of the MMORPG Ive seen recently start to choke because they arent just sending position/action update info, but also more dynamic specific object info as the player (or various objects) moves.


I would be *very* interested in seeing a credible (verifiable) source for this claim.

wasnt it Everquest at one tiem that had hundreds(1000s?) of off-the-shelf PCs running their client layers


From what I've seen described, in original EverQuest, each client connected directly to a game server, and when "zoning" disconnected from that server and re-connected to another server. Each zone was a separate PC/server. As time went on (multi-core servers, etc,) they coalesced multiple zones onto single pieces of hardware, but it was still one process/ip/port per zone.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement