[转载] 网络游戏的对时以及同步问题
出处 http://blog.163.com/stefanie_kaka/blog/static/18973516220116104006/
--------------------------
大多数实时网络游戏,将 server的时间和client的时间校对一致是可以带来许多其他系统设计上的便利的。这里说的对时,并非去调整client的os中的时钟,而是把client内部的逻辑时间调整跟server一致即可。
一个粗略的对时方案可以是这样的:
1. client发一个数据包给server,里面记录下发送时刻;
2. server收到后,立刻给这个数据包添加一个server当前时刻信息,并发还给client(因为大部分情况下,server不会立刻处理这个包,所以,可以在处理时再加一个时刻。两者相减,client可以算得包在server内部耽搁时间);
3. client收到server发还的对时包时,因为他可以取出当初发送时自己附加的时刻信息,并知道当前时刻,也就可以算出这个数据包来回的行程时间。这里,我们假定数据包来回时间相同,那么把server通知的时间,加上行程时间的一半,则可以将client时间和server时间校对一致;

//////////////////////////////////////////////////////////////////////////
// end file
浙公网安备 33010602011771号