我爲Windows Phone 7開發了一款不錯的免費遊戲,稱爲Domination,儘管早期發佈,它也相當成功!XNA TCP Socket多發包丟失
現在,我正在開發一個在線多人遊戲版本,它將有趣的功能,現在我已經接近尾聲,我遇到了一個大問題。
WEIRD丟包,或類似的東西。
我有一個重現問題的例子。
我有一臺服務器。 我一個雙贏的窗體的客戶 我有一個XNA客戶
步驟來重現問題:
1)啓動服務器,贏形式和遊戲(你需要一個仿真器和WP7 SDK )
2)現在,按下GO按鈕,形式將打開TCP信道到服務器
3)現在,按上仿真器的屏幕,並且形式將打開TCP信道服務器
4)現在,每次按屏幕模擬器,或贏窗體上的GO按鈕時,服務器會送你回50封郵件正確客戶端上
很好,問題是,
1)贏得形式通常收到50條消息,RARELY在一次通信中丟失了10個數據包,但是它很少使用,但它很容易丟失30-40-45條消息!!!!!
我試過其他的方法,但沒有任何改變..
一個提示,如果我把一個Thread.sleep代碼(10),10是10毫秒,每個服務器發送,它的作品完美!
任何人都可以幫助我嗎?我只是不知道該把我的頭放在哪裏!
樣品可以在這裏找到:
http://uploading.com/files/d7e7939c/Projects.zip/
您正在使數據包與應用程序級消息和字節塊混淆。如果你保持這些概念清晰明瞭,理解發生的事情會容易得多。事實上,你並沒有失去這三件事。 –