我为 Windows Phone 7 开发了一款不错的免费游戏,名为 Domination,尽管发布较早,但还是相当成功的!
现在,我正在开发一个在线多人游戏版本,它考虑到有趣的功能,现在我已经接近尾声了,我遇到了一个大问题。
奇怪的数据包丢失,或类似的东西。
我有一个重现问题的样本。
我有一个服务器。我有一个 Win Form 客户端 我有一个 XNA 客户端
重现问题的步骤:
1)你启动服务器,win form和游戏(你需要一个模拟器和WP7 SDK)
2) 现在,您按下 GO 按钮,表单将打开到服务器的 TCP 通道
3)现在,你按下模拟器上的屏幕,表单将打开到服务器的 TCP 通道
4)现在,每次你按下屏幕模拟器,或者win表单上的GO按钮,服务器都会在正确的客户端上向你发送50条消息
好吧,问题是
1)win form 通常会收到 50 条消息,很少会在一次通信中丢失 10 个数据包,但这很罕见
2) 模拟器,总是丢失 30-40-45 条消息!!!!!!
我尝试了其他方法,但没有任何改变..
一个提示,如果我放置一个 Thread.Sleep(10) ,其中 10 是 10 毫秒,对于每个服务器发送,它工作得很好!!
任何人都可以帮助我吗?我只是不知道把头放在哪里!
样品可以在这里找到: