我做了一個實時遊戲,現在它非常滯後。 我看到了實時遊戲,我寫有'UDP協議'代碼,而不是'TCP'Java聯網程序; (滯後期問題)
這會解決滯後問題嗎?並且以'UDP'形式更改我的代碼真的很難嗎?
謝謝!
我做了一個實時遊戲,現在它非常滯後。 我看到了實時遊戲,我寫有'UDP協議'代碼,而不是'TCP'Java聯網程序; (滯後期問題)
這會解決滯後問題嗎?並且以'UDP'形式更改我的代碼真的很難嗎?
謝謝!
這會解決滯後問題嗎?
UDP協議是一點點比TCP更快,因爲它缺少一對夫婦增值羣衆演員:
當一切正常時(確認正確傳輸所需的額外握手消息)以及網絡出現錯誤(額外重試數據包,接收方等待/重新排序)時滯後時間會稍微延長。
對於一款遊戲,您可能不需要這些額外的服務。
你肯定知道其中的差別?不必要。
速度,業務負載和底層網絡的網絡路由器/交換機的跳數對單獨的分組性能有很大影響。您可能沒有注意到千兆局域網內的任何差異,但可能會看到無線和通過互聯網存在很大差異的小差異。糟糕的路由器設置和繁忙的網絡顯然會讓情況更糟。
要了解您的網絡路徑,並檢查速度&可靠性/網絡上的錯誤,使用
ping
& traceroute
/tracert
難道是真的很難改變我在 'UDP' 形式的代碼?
號
而不是使用java.net.Socket
的,和j ava.net.ServerSocket
使用java.net.DatagramSocket
X 2.
http://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
你'.flush()'插座你'.WRITE ()'來? – fge