學習java服務器技術,試圖澄清一些事情。 有幾種技術可以讓Java應用程序相互通信。服務器如何將數據推送到客戶端?
1)的Web服務(REST/SOAP)通過HTTP
2)簡單的POST/GET使用的URLConnection在HTTP上。
3)套接字
4)RMI =套接字+對象序列+一些公用事業
5)不同的媒體服務器等RED5 = RTMP或RTMPT
所有這些技術假設有一個服務器應用和客戶端應用。客戶端應用程序知道服務器地址並應該是調用的發起者據我所知現在有服務器將數據推送到客戶端,他只能將數據作爲響應發送回客戶端。如果只是他們改變他們的角色,這種情況下服務器應該知道客戶端IP是可能的。
所以我想知道網絡遊戲是如何工作的?是否有可能在服務器和客戶端之間全部打開連接和交換數據,而無需每隔1-2秒從客戶端請求服務器,並且服務器不知道客戶端IP。我不是在談論彗星和其他黑客。
謝謝
另外實時網絡遊戲通常實際上「欺騙」了一下。每個客戶端實時更新本地世界,並在從服務器進行新更新到達時重新同步共享仿真。 當你射擊你的敵人時,他可能會躲開你的射擊只能造成一點傷害,或者可能不會。當然這是服務器將根據來自該客戶端的躲閃命令是否在拍攝之前或之後到達而公平決定......但是攻擊玩家可能不會注意到所示的三維動畫與能量數量之間的最終不一致減去條。 – 6502 2010-07-01 22:19:05