如何計算遊戲客戶端與伺服器之間的時間延遲?

2021-08-09 07:57:13 字數 577 閱讀 2155

很顯然客戶端和伺服器都有各自的本地時鐘,通過他們的本地時鐘比較是沒有任何意義的。

那我們如何計算客戶端與伺服器之間的時間延遲呢?這裡有乙個比較簡單的方法,那就是通過發資料報測量。

首先,我們先來梳理下資料報傳送的整個流程:

3)客戶端a收到資訊之後,記錄下收到報文的時間ta2.

由於報文往返的時間是相等的,所以客戶端傳送給伺服器的時間延遲p = (ta2 - ta1)/ 2

一般,p只計算一次是不夠精確的。我們可以讓客戶端a定時的給伺服器b傳送測量資訊,然後計算p的平均值。

這個平均值就是我們想要獲取的時間延遲了。

另外如果我們想要知道客戶端和伺服器的本地時間差,可以怎麼獲取呢?

這個也是可以通過公式計算出來的

我們可以先假設a和b的本地時鐘是一樣的(當然這個假設明顯不成立),那麼

tb = ta1 + p ,把上面的p套入公式,整理後可以得tb = (ta1 + tb2) / 2

可是實際上a和b之間是有時間差x的,於是 tb + x = (ta1 + tb2)/ 2

整理後可得x = (ta1 + tb2)/ 2  - tb

over~~~

客戶端與伺服器之間的通訊

今天我們來 一下通訊群聊的實現,就像平常我們玩的qq群聊功能一樣,有多個賬號發訊息能互相接收到,其實這個資料傳輸的過程是在客戶端和伺服器間實現的。所以我們要先建立乙個伺服器端口。public class chatserver在資料傳輸之前,客戶端和伺服器有三次握手。1.客戶端告訴伺服器自己要建立連線...

伺服器與客戶端

建立socket操作,建立流式套接字,返回套接字型大小socksrv socket socket int af,int type,int protocol 第乙個引數,指定位址簇 tcp ip只能是af inet,也可寫成pf inet socket socksrv socket af inet,s...

客戶端與伺服器

cs與bs 軟體使用方式上的兩種劃分 c s client server pc客戶端與伺服器架構 特點 在伺服器當中就主要是乙個資料庫,把所有業務邏輯都交給客戶端來完成 優點 較為安全,使用者介面豐富,客戶體驗好 缺點 每次公升級都要重新安裝,針對不同的作業系統開發,可移植性差 b sbrowser...