我遇到了一个相当大的问题,并且一直试图找到解决方案 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,套接字上的任何 backedlogged 数据都会再次自由流动,并且套接字会再次正常运行。
演示问题的示例 Windows 和 iOS/MonoTouch 应用程序:https ://dl.dropbox.com/u/8617393/SocketBug/SocketBug.zip
跨不同设备的测试结果(PDF 电子表格): https ://dl.dropbox.com/u/8617393/SocketBug/SocketBugTestResults.pdf