It seems I have not been clear enough. When the server accept()'s a connection I add the connection id to a hash so I will have a list of connection id's. Now when any data from any connection comes into the server I need the server to turn around and send that data out to all connections. This does work somewhat but the problem is that when the first user connects the thread is spawned and only ever sees itself. When the second one connects the thread is spawned and the id is added to the hash along with the first and now the second sees itself and the first. The third connects and sees itself and 1 and 2. However 1 cannot see 2 or 3 and 2 cannot see 3. This is because I can not share this list/hash with each thread.