作者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/m.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