很显然客户端和服务器都有各自的本地时钟,通过他们的本地时钟比较是没有任何意义的。

那我们如何计算客户端与服务器之间的时间延迟呢?这里有一个比较简单的方法,那就是通过发数据包测量。

首先,我们先来梳理下数据包发送的整个流程:

1)客户端A先记录自己的本地时间TA1,然后给服务器发B发送一个报文。

2)服务器B收到报文之后,记录自己的本地时间TB,然后把TB放入报文里发送给客户端A。

3)客户端A收到信息之后,记录下收到报文的时间TA2.

由于报文往返的时间是相等的,所以客户端发送给服务器的时间延迟P = (TA2 - TA1)/ 2

一般,P只计算一次是不够精确的。我们可以让客户端A定时的给服务器B发送测量信息,然后计算P的平均值。

这个平均值就是我们想要获取的时间延迟了。

另外如果我们想要知道客户端和服务器的本地时间差,可以怎么获取呢?

这个也是可以通过公式计算出来的

我们可以先假设A和B的本地时钟是一样的(当然这个假设明显不成立),那么

TB = TA1 + P ,把上面的P套入公式,整理后可以得TB = (TA1 + TA2) / 2

可是实际上A和B之间是有时间差X的,于是 TB + X = (TA1 + TA2)/ 2

整理后可得X = (TA1 + TA2)/ 2 - TB

OVER~~~

如何计算游戏客户端与服务器之间的时间延迟?相关推荐

  1. 【游戏客户端与服务器面试题】-- 2022年最新游戏客户端与服务器面试(lua篇持续更新)

    [游戏客户端与服务器面试题干货]-- 2022年度最新游戏客户端面试干货(lua篇) 文章目录 一.Lua的8种数据类型 (1) nil 类型 (2) boolean类型 (3) number类型 1 ...

  2. 客户端和服务器之间的信息结构,客户端和服务器之间的信息结构

    客户端和服务器之间的信息结构 内容精选 换一换 说明:Web Service客户端和服务器间使用相同的编码方式,是为了防止出现乱码现象,也是实施输入校验的基础.安全加固:web server响应消息统 ...

  3. 使用sftp在客户端与服务器之间进行文件传输

    知识点:sftp 步骤: 一. 登录服务器 使用命令格式:sftp 服务器主机名 二. 在客户端与服务器之间进行文件传输 命令put: 上传到服务器 put haha.txt 命令get: 下载到客户 ...

  4. 客户端和服务器之间的信息结构,客户端与服务器之间的通信过程

    客户端与服务器之间的通信过程 内容精选 换一换 一.HTTP概念超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必 ...

  5. 客户端与服务器之间的通信过程

    客户端与服务器之间的通信过程主要分为三步:请求--处理--响应 1.客户端发起请求 2.服务器处理本次请求 3.服务器响应客户端

  6. http协议跟服务器交互,基于HTTP协议的客户端与服务器之间的数据交互方法专利_专利查询 - 天眼查...

    L-种基于HTTP协议的客户端与服务器之间的数据交互方法,应用于智能$居系统 中,以使用户的客户端与智能家居系统的服务器之间建立稳定的网络连接并进行数据交 互,所述方法包括步骤: 所述客户端与所述服务 ...

  7. 客户端与服务器之间的文件传输,客户端与服务器的文件传输

    客户端与服务器的文件传输 内容精选 换一换 使用FTP上传文件时,写入失败,文件传输失败.该文档适用于Windows系统上的FTP服务.FTP服务端在NAT环境下,客户端需使用被动模式连接服务端.在这 ...

  8. 客户端和服务器之间通信讲解

    原文网址:http://www.myexception.cn/program/1600316.html 一.关键词解释 客户端:能向服务器发送信息,提出请求. 服务器:能接收客户端发来的请求,并能发送 ...

  9. Android:客户端和服务器之间传输数据加密

    Android客户端与服务器进行数据传输时,一般会涉及到两类数据的加密情况,一类是只有创建者才能知道的数据,比如密码:另一类是其他比较重要的,但是可以逆向解密的数据. 第一类:密码类的数据,为了让用户 ...

最新文章

  1. mysqlimport命令
  2. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)
  3. spring默认缓存管理器_使用Spring的缓存管理器缓存Web内容
  4. CSS结构的基础认知
  5. 中级前端开发推荐书籍
  6. 7大排序算法详解+java实现
  7. 不写一行代码,基于Jmeter打造性能测试数据平台
  8. Pandas 文本数据方法 findall( )
  9. 如何在股票软件画波浪?波浪原理?初级应用画线
  10. 学豆网学计算机,出题优学生版电脑版
  11. 检查php语法错误,PHP检查语法错误技巧
  12. 零基础学UI设计好学不?
  13. 若说耳机世界里有一股清流,那这款QCY耳机肯定是其中之一
  14. 求多个数最小公倍数的一种变换算法(未看)
  15. 2021华为校园招聘算法题
  16. 基于MDK开发的TencentOS-Tiny软件包,快速移植物联网操作系统到Keil中!
  17. 【回溯法】python 实现 全排列,子集,组合问题、分割回文串
  18. 外部链接的建设,什么样的才是好的外部链接?
  19. jsp页面导入java包能干嘛_在JSP中如果要导入java.util.*包要使用什么指令
  20. SQL语句 改写 / 插入转换快捷键

热门文章

  1. 数学公式快速计算方法
  2. 现在的SQLSERVER数据库监控软件有哪些?
  3. 用c语言绘制五角星图形,用c语言画出一个五角星图案
  4. HTML之在JavaScript中定义函数
  5. 动态规划的应用(二):cutting stock 问题
  6. php 工资条系统下载,发工资条软件
  7. 大数据相加_大数据相加
  8. 德威控股在港交所招股书失效:2021年度利润大增,由杨时家族控股
  9. 印象笔记mac版 同步问题_Typora和印象笔记的完美同步及备份
  10. 卸载程序时遇到“请等待当前程序完成卸载或更改”