1

我正在开发 Unity3D 中的一个项目,我需要将大量数据从客户端计算机发送到主/服务器计算机。

每台客户端计算机都连接有一个 Kinect 传感器。一些Kinect 数据将以某种方式传送到本地化的主计算机。

我的问题是,最好的方法是什么?我目前在 Unity3D 中的 C# 中使用 RPC 网络协议。我基本上有一个客户端 Unity 在客户端计算机上运行,​​从 kinect 获取数据,将其转换为字节并通过 LAN 将其发送到我的服务器(由另一个 Unity 程序接收)。

但是,仅使用一个客户端会使用 10Mb/s 的下载/上传速度,并且在大约 30 秒的流式传输之后,我的网络似乎陷入了困境,然后拒绝发送更多数据,直到我再次重新启动客户端。

我对网络程序不太了解。但我只是想知道是否有更好的方法可以使用?

笔记:

  • 所有客户端和主计算机实际上都在同一个房间里(所以一切都是本地的)。

  • 根据我的计算,每个客户端需要大约 10Mb/s 的速度。很可能会有大约 6 个客户。意味着总流为 60Mb/s。如果我沿着网络路线走,这应该不是问题吗?(因为它都是本地的)。

  • 流不一定必须出现在 Unity3D 中,只要我可以在 Master 端将数据实际输入 Unity 即可。

  • 数据本身大约每秒发送约 30 次(考虑到“10Mb/s”)

谢谢。

- - 更新 - -

我在做什么?

这个想法是能够将所有客户端(连接了 Kinects)的 3D 深度数据流式传输到主服务器。主人随后将处理所有这些数据,并构建所有 Kinect 所面对的房间中心的 3D 表示(使用点云)。

  • 这是实时的(或尽可能实时 - 鉴于情况)。

  • 我确实在使用有线局域网(全部通过具有千兆以太网的新路由器连接) - 全部本地化,彼此相距 10 英尺。

  • 主计算机是 2.3 GHz Intel Core i7,因此它应该能够接收 10Mbs 的流。

  • 据我所知,我之前提到的“陷入困境”的问题可能归结于 Unity 的 RPC 系统?!:/

  • 我很想编写一个小的 Windows 程序,它将 Kinect 数据流式传输到主 IP - 并让 Unity 来获取它(不知何故 - 我不知道如何实现 - 它看起来更合乎逻辑,对吗?)

谢谢。

4

0 回答 0