I am looking to develop a network simulator in C. A simple game involving avatars would be run on the virtual network. It will work by a virtual client generating a move for an avatar and sending the move to its virtual server. The virtual server will either accept or reject the move, depending on the current game state. A delay will be imposed between the client and server. The simulator will have a number of virtual servers, and a number of virtual clients on each virtual server.
My question how am I able to simutainesly have the virtual clients generating moves for its avatars, as well as the virutal servers processing its clients moves and making decisions.