作者LaPass (LaPass)
看板java
标题[问题] 想知道连线时间差以及ping值
时间Sat May 30 21:01:51 2015
我正在写有连线的程式
程式中需要得知
1. server跟client端的时间是否有差异
主要还是因为不一定每个人的电脑、手机都会去校正时间的关系
如果资料的时间错的话,会出问题
2. 需要知道ping值
有些网路游戏会会把那东西显示在萤幕的右上角或左上角
让使用者知道自己lag多久
呃.... 该不会是用
Runtime.getRuntime().exec("ping xxxxxx");
然後把ping出来的数字显示出来吧?
请问该怎麽抓到这些东西?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.38.76.211
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1432990915.A.D52.html
1F:推 Killercat: 你刚好问到个比较尴尬的问题,java没有raw socket 05/30 21:32
2F:→ Killercat: 所以没办法不用JNI就实作出ICMP pocket 05/30 21:32
3F:→ Killercat: 大概就两个解,第一个就如你所说,第二个就是用C 05/30 21:32
4F:→ Killercat: 去时做一个ICMP以後把它包起来用JNI呼叫 05/30 21:33
5F:→ Killercat: 第一个问题其实我不知道你要多精确以及有什麽限制(抓头 05/30 21:34
6F:推 cyclone350: 我有第三个方法,找别人做好的lib来用 05/30 22:01
8F:→ LaPass: 1的时间允许的误差还蛮宽的,大概两三秒内那样。 05/30 22:06
9F:→ LaPass: 可能用,丢个里面有时间的封包给对方,对方收到时扣掉ping 05/30 22:07
10F:→ LaPass: 那样吧.... 虽然应该很不准,但还在容许范围内,不过,我 05/30 22:08
11F:→ LaPass: 想应该会有更好的方法才对,因为系统就是靠网路去对时间 05/30 22:09
12F:→ LaPass: 的啊。 NTP之类的 05/30 22:10
13F:→ Killercat: 诶,其实我想说的的确是找别人东西用 XD 05/30 22:14
14F:→ Killercat: 要一个普通的pg写raw socket实在太要人命了 XDD 05/30 22:14
15F:→ Killercat: 不过我还真不知道有那麽赞的lib,拜收了喔 05/30 22:14
16F:→ Killercat: 「找别人的东西用 包城JNI」(奇怪怎麽漏了一行) 05/30 22:15
17F:→ LaPass: 感谢,我研究看看~ 05/30 22:29