Hey everyone,
I have a problem. I made a game that uses Winsock to network between two computers. The original protocol that I used was this (using TCP/IP):

-Send the player keys that are pressed
-Receive the opponent player's keys that are pressed
-Continue with another frame of the game

Then I upgraded the game, to include 3 or more players, and changed the protocol to this:

-Send player keys that are pressed to a server computer
-If you are server, receive the keys from each of the other computers
-If you are server, send off to each client the number of packets to receive
-If you are server, Send to each client the keys of each other client
-(for everyone) Receive the number of packets, then receive the packets, and update, draw another frame, etc.

Problem with this one is, it's horribly horribly slow (as in about 4 frames per second) even on a LAN. Does anyone have any suggestions on how to improve this? Do I need to switch to a system like "send data with timestamp and execute command after a delay"? Or do I need to switch to UDP somehow or something like that?

**Note: Game networking tutorial links also welcome