lpoht has asked for the
wisdom of the Perl Monks concerning the following question:
Hi, I have written a small utility for two Win32 boxes that will each be running a slideshow application (an exe file). The issue at hand is that the slideshows must both be started at the exact same time. The software I have written follows a client/server model. Once started, the server loads the slideshow, which waits for a mouse click to start, then listens for commands from the client. The client also loads the slideshow, but then waits a few seconds, then uses Win32::GuiTest to send a mouse click to the local machine. It also sends a command to the server to simulate a mouse click. The commands are ordered to send the current command to the server and then execute it locally, in hopes to syncronize the two machines better. However, it seems that there is up to a 1ms delay between the machines, with the client usually leading. I tried inserting a short sleep on the client, but it actually didn't happen.
The machines are each running Windows XP and are being connected with a Cat5 crossover cable. The network latency should be pretty small with this method. Does anyone have suggestions of ways to better syncronize the two machines? Thanks.