如何解决基于Unity的HoloLens应用程序无法接收TCP数据
我正在基于Unity开发HoloLens(1)的应用程序。我正在尝试通过TCP将数据从基于Qt的应用程序(Windows)发送到HoloLens。 Wireshark显示,我的测试包已由HoloLens正确发送并确认。数据以包含消息长度的四个字节开头,紧接在这四个字节之后。在下面的代码中,首先尝试接收四个字节,然后再尝试接收消息本身。
在客户端应用程序中执行了用于连接和发送数据的代码后,在HoloLens上调用StreamSocketListener_ConnectionReceived()
。在下一个Update()
调用中,将调用ReadTcpData()
。现在,在第一次调用
tcpMessageSizeBuffer[tcpMessageSizeBytesRead++] = (byte)stream.ReadByte();
当我尝试跨行时,至少调试器会跳出代码。 catch块中没有异常。
我期望EndOfStream
的{{1}}属性如果没有要读取的内容将为false,因此,当没错我不知道这里出了什么问题。任何提示将不胜感激。
StreamReader
解决方法
发现问题-我必须使用frequency
并替换读取消息长度的代码,例如:
BinaryReader
为了保持一致性,实际阅读消息的部分代码也可以改编为使用while(tcpMessageSizeBytesRead < tcpMessageSizeByteCount)
{
tcpMessageSizeBuffer[tcpMessageSizeBytesRead++] = (byte)binaryReader.ReadByte();
}
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。