遊戲即時通訊開發目前正在使用ServerSocket和套接字提供多人遊戲。它不會在本地運行時滯後,所以即時通訊想知道是否應該通過TCP(ServerSocket,套接字)和UDP(DatagramSocket)重製多人遊戲結構。目前正如前面所提到的,只使用TCP,並且每秒只發送大約60個數據包(30個接收者和30個發送者),而不是在本地運行。多人遊戲網絡
在服務器和客戶端之間發送的信息:
移動,交易,ItemUsage,EnvironmentDetails等等。
所以我的問題是:
它會產生巨大的變化,如果我都使用TCP和UDP,而不是隻有TCP的?
如果我切換到TCP和UDP,我應該在每個協議中發送什麼?
在此先感謝!
編輯:
客戶:
實例化:this.out = new ObjectOutputStream(new BufferedOutputStream(this.requestSocket.getOutputStream())); this.in = new ObjectInputStream(new BufferedInputStream(this.requestSocket.getInputStream()));
發送:
this.out.writeObject(temp.toString()); this.out.flush();
溫度是的JSONObject
服務器:
實例化:this.out = new ObjectOutputStream(new BufferedOutputStream(c.getOutputStream())); this.out.flush(); this.in = new ObjectInputStream(new BufferedInputStream(c.getInputStream()));
發送:this.out.writeObject(temp.toString()); this.out.flush();
溫度是的JSONObject
UDP可能會丟包,所以可能會丟失數據。這會不會對你的遊戲產生負面影響?我可以看到它可能是一個問題。 – Carcigenicate
好吧,UDP本身不具有錯誤檢查的功能,所以它在理論上肯定會更快,只要你不需要一個準確的信息流。 – Mena
也可能因爲您的代碼而滯後,具體取決於您的通信代碼如何處理事物。你沖洗你的流?您以什麼格式發送數據等等。 – Kayaman