Re: [問題] 想知道連線時間差以及ping值
※ 引述《LaPass (LaPass)》之銘言:
: 我正在寫有連線的程式
: 程式中需要得知
: 1. server跟client端的時間是否有差異
: 主要還是因為不一定每個人的電腦、手機都會去校正時間的關係
: 如果資料的時間錯的話,會出問題
: 2. 需要知道ping值
: 有些網路遊戲會會把那東西顯示在螢幕的右上角或左上角
: 讓使用者知道自己lag多久
: 呃.... 該不會是用
: Runtime.getRuntime().exec("ping xxxxxx");
: 然後把ping出來的數字顯示出來吧?
: 請問該怎麼抓到這些東西?
剛剛看了一下NTP的作法
http://ccnet.ntu.edu.tw/ntp/operate.html
簡單來講就是
紀錄下時間T1,傳個封包過去
對方收到封包,把自己的時間T2夾在封包內回傳
收到封包,紀錄下時間T3
(T3-T1)/2 = lag的時間
(T1+lag) - T2 = 兩台電腦的時間差
至於 「lag有可能不會是固定值」 這點則被忽略了
在網路很順的狀況下,應該ok的
然後對時之後,ping值應該使用,在訊息封包內夾個時間傳過去
看對方收到時延遲多少,就知道ping多少了
(應該會不准,不過夠用了)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.76.211
※ 文章網址: https://www.ptt.cc/bbs/java/M.1432998163.A.14F.html
→
05/30 23:08, , 1F
05/30 23:08, 1F
→
05/30 23:08, , 2F
05/30 23:08, 2F
推
05/31 00:49, , 3F
05/31 00:49, 3F
→
05/31 00:49, , 4F
05/31 00:49, 4F
→
05/31 00:50, , 5F
05/31 00:50, 5F
→
05/31 00:52, , 6F
05/31 00:52, 6F
→
05/31 08:25, , 7F
05/31 08:25, 7F
推
05/31 13:39, , 8F
05/31 13:39, 8F
→
05/31 13:39, , 9F
05/31 13:39, 9F
→
05/31 18:49, , 10F
05/31 18:49, 10F
→
05/31 19:30, , 11F
05/31 19:30, 11F
→
05/31 19:34, , 12F
05/31 19:34, 12F
→
05/31 19:34, , 13F
05/31 19:34, 13F
→
05/31 19:56, , 14F
05/31 19:56, 14F
→
05/31 21:17, , 15F
05/31 21:17, 15F
→
05/31 21:17, , 16F
05/31 21:17, 16F
→
05/31 21:17, , 17F
05/31 21:17, 17F
→
05/31 21:17, , 18F
05/31 21:17, 18F
→
05/31 21:17, , 19F
05/31 21:17, 19F
→
05/31 21:20, , 20F
05/31 21:20, 20F
→
05/31 21:20, , 21F
05/31 21:20, 21F
→
05/31 22:40, , 22F
05/31 22:40, 22F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章