我遇到了一个很大的问题,并且一直在寻找解决方案已有2个月了,但是没有运气。我已将其提交为错误(https://bugzilla.xamarin.com/show_bug.cgi?id=4910),但希望这里的某人可以阐明问题的原因或提出解决方法。

简而言之,遇到错误:

  • 在两个设备之间创建基本的.Net套接字连接
  • 在至少一个设备上创建并初始化GameKit.GKSession对象。

  • 发生的情况是.NET套接字上的数据传输变得不稳定且太慢而无法使用。我已经在不同的设备上执行了许多测试(请参阅下面的链接),并且它会影响所有这些设备(iPad 3受影响最小)。我已经在iPhone和Windows PC之间对其进行了测试,但仍然会发生。 MonoTouch的GameKit代码以某种方式影响了Socket代码。
    从电子表格中可以看到,速度从几毫秒下降到永远发送1 MB到几分钟。
    一旦将GameKit.GKSession设置为null,套接字上任何备份的数据都将再次自由流动,并且套接字将再次正常运行。

    示例Windows和iOS/MonoTouch应用演示了问题:https://dl.dropbox.com/u/8617393/SocketBug/SocketBug.zip

    跨不同设备的测试结果(PDF电子表格):
    https://dl.dropbox.com/u/8617393/SocketBug/SocketBugTestResults.pdf

    最佳答案

    即使苹果决定规避它,这个问题似乎也很难解决:http://developer.apple.com/library/ios/#qa/qa1753/_index.html#//apple_ref/doc/uid/DTS40011315

    显露的一句话是:“进行此更改是为了减少对Wi-Fi的干扰。”

    10-01 05:34