System.Net.Sockets 是不是与针对 iOS 的 Unity 兼容? [关闭]

Posted

技术标签:

【中文标题】System.Net.Sockets 是不是与针对 iOS 的 Unity 兼容? [关闭]【英文标题】:Is System.Net.Sockets compatible with Unity targeting iOS? [closed]System.Net.Sockets 是否与针对 iOS 的 Unity 兼容? [关闭] 【发布时间】:2021-04-19 15:01:16 【问题描述】:

我创建了一个 Unity 应用程序,它使用 System.Net.Sockets 与单独的服务器计算机进行 TCP 通信。此应用程序在编辑器中完美运行,并且适用于 android 或 PC。但是,当我尝试创建 ios 版本(在 MacBook 上)时,应用程序正确加载,但没有进行网络通信。

接下来我创建了一个开发人员构建,但在运行时没有出现错误或警告,只是没有连接到服务器。我确保仔细检查它们是否都在同一个网络上,并且端口设置正确。

我目前正在调试和查看文档,但我没有看到任何说明 System.Net.Sockets 与 iOS 不兼容的内容。回答完以下问题后,我可以上传代码 sn-ps / 询问有关特定代码的新问题。

Unity 是否支持 iOS 的 System.Net.Sockets?在为 iOS 构建联网项目时,是否需要做一些独特的事情?

感谢您的时间和帮助!

【问题讨论】:

这些问题确实不适合 SO。您可能首先了解如何在 iOS 上实现 System.Net.Sockets,检查自动生成的 C++ 源代码或 .NET 的 Mono 实现以获取更多线索。它可能会归结为达尔文。此外,您应该提供任何错误或控制台输出。 @NCarlson 只是简单地说......实际上你几乎必须在 Unity 中使用这个 websocket 库......github.com/Marfusios/websocket-client(以前有另一个很流行,但它有随着时间的推移分崩离析)。从头开始使用 Net Sockets 确实是一项巨大的工作。 (它是比乍看起来更难的事情之一。:/) (例如,***.com/q/63712116/294884) 另外@NCarlson 请注意,在基于帧的游戏引擎中使用消息传递(它是连续的)确实非常棘手。如果您真的要尝试使用网络套接字从头开始编写自己的代码,请点击此处:gamedev.stackexchange.com/a/169413/86883 一个很好的建议是在论坛上寻找优秀的 BestHTTP/2 包(和/或其他类似的资产存储库)。你可以直接去那里问问题。这通常是查找信息的最聪明的方法。举个例子,为统一创建通常的相机资产的人,实际上比任何其他活人都更了解“统一的相机”问题!呵呵!它通常是提出此类问题的最佳/唯一场所 【参考方案1】:

一个可悲的快速回答:

Unity 中的 System.Net.Sockets 是否适用于 iOS / Android 构建是这个时代的一大谜团,答案每隔几个月就会改变:/

几乎可以肯定目前有可能......

例如,请注意这个流行的库https://assetstore.unity.com/packages/tools/network/best-http-2-155981,它可以完美地与 ios/droid 配合使用,实际上最终只是 .Net 底层。

(一个有价值的提示是,进入该库的论坛并提出您的问题......)

例如,注意这个“详细信息”:-/http://answers.unity.com/answers/1329285/view.html

请注意这些 cmets,例如 Unity socket project don't work when installed to iPhone 和 https://forum.unity.com/threads/unity-ios-xcode-socket-related-linker-errors-quite-stuck.518162/

TBS、System.Net.Sockets 绝对适用于 Mac 或 PC 桌面版本(我们每天都这样做)

如前所述,实际上几乎不可能从头开始使用 System.Net.Sockets;这是一项令人难以置信的工作量,实际上https://github.com/Marfusios/websocket-client 是当今 Unity 中的普遍选择。无论如何你都必须这样做..看看它是否适用于 iOS/droid:/

问题...

请注意,在基于帧的 ECS 系统中使用实时消息传递.......确实令人困惑。注意这里解释的队列使用https://gamedev.stackexchange.com/a/169413/86883

就此而言,任何基于帧的内容在与任何类型的实时信息相结合时都会令人难以置信的混乱。著名温度计示例:https://***.com/a/54184457/294884

【讨论】:

谢谢小胖子!你是圣人!

以上是关于System.Net.Sockets 是不是与针对 iOS 的 Unity 兼容? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

关闭 NamedPipeClientStream 时出现 System.Net.Sockets.SocketException

System.Net.Sockets.SocketException:'现有连接被远程主机强行关闭'

System.Net.Sockets.SocketException:由于目标机器积极拒绝

无法访问已处置的对象。对象名称:'System.Net.Sockets.UdpClient'

System.Net.Sockets.SocketException

创建 websocket 连接时出现 System.Net.Sockets.SocketException