请教xtang

xtang您好!有个问题想向您请教:假设现在有5台客户机,一台
服务器,通过socket API建立通信,我能作到让服务器通知5台
client在同一时间向server发送数据吗?我试了多种办法,都有
这样或那样的文题,不知道xtang能否给个建议,如简单的步骤
。非常感谢!

这个有点难度。“同时发送”到底要“同时”到什么程度呢?

可以使用NTP来同步网络上的机器。大致原理是:

由用户机向服务器发一个包,内含用户机的 time stamp,
服务器在收到包后,将服务器的time stamp加在包内,
然后再将这个包传回用户机。用户机收到这个包,比较收到
包的时间,和包里的time stamp,就可以知道这个包在
网络上走一个来回所需要的时间,这个时间的一半,加上
包里的服务器的time stamp,就是现在的服务器时间。

可以多做几次,求取一个平均值。等到所有的机器的时间
都同步了,然后只要定一个绝对时间,大家在这个时间发
包就可以了。

这是个好办法,也是常用的办法.具体的stamp可以用CloclCycle()函数,以便得到比较精确的Time stamp,这种方法比较有效地测算出网络的延时.不知要求同步的时间误差要求是多少,我做过一个现成的程序,十个点的误差可以做到0.9ms以内.

不知道能不能给我发一份,谢谢!我的mail是
x518889@sohu.com :open_mouth: