the following is an excerpt from Flash Game Development: In a Social, Mobile and 3D World (which is obviously not current, but the general principles discussed are unchanged)
Social Gaming - Multiplayer Games
With multiplayer games, data needs to be communicated among the players. When a player makes a move (changing the game state) the updated game state needs to be communicated to all the other players. In addition, that communication needs to occur in a timely manner.
With turn-based games (like card games) that communication among players can take as long as few seconds without degrading the game experience. With real time games (like shooter games), even a 250 millisecond delay in communicating game state leads to a significantly degraded player experience. Consequently, real time multiplayer games require substantial expertise to successfully develop and deploy.
There are two fundamentally different ways that communication among players can be accomplished. Players can communicate via a server (server-based games) or they can communicate directly from player to player (peer-to-peer) games.
Server Based Multiplayer Games
Generally, the code in each player’s Flash game handles the player’s input, transmits player data to the server, receives other players' data and displays the game state. The server receives player data, validates the data, updates and maintains game state and transmits each player’s data to the other players.
Since Flash Player 10, you can create multiplayer games without the need of an intermediary server to facilitate player communication. The Flash Player can use a protocol (Adobe's Real-Time Media Flow Protocol) that allows direct peer-to-peer communication.
Instead of using server-side code to handle the game logic and coordinate game state among players, each peer in the network handles their own game logic and game state and communicates that directly to their peers and each peer updates their game state based on the data received from others.
To use peer-to-peer networking each peer must connect with an Adobe server. Peer-to-peer communication does not go through that server (or it that would not be peer-to-peer) but peers must stay connected with the Adobe server in order to communicate with each other.
To communicate with the Adobe server you should use your own server URL and developer key. That URL and key can be obtained at http://www.adobe.com/cfusion/entitlement/index.cfm?e=cirrus.
Below is a simple tic-tac-toe game that uses Adobe's peer-to-peer networking to pair-up players. The NetConnection class is used to establish a connection to the Adobe server while the NetGroup class is used for peer-to-peer communication.
I used only a small part of the NetGroup methods for the tic-tac-toe game but there are more available if you are sharing data among many users and/or sharing large amounts of data.
The tic-tac-toe game is in support files/Chapter 11/multiplayer and is extensively commented.