桌面应用和 UWP 应用程序之间连接的数据格式



im 在桌面应用 (c#) 和 HoloLens (UWP) 之间创建客户端-服务器服务。服务器在HoloLens上运行,而PC App是客户端。

我在传输数据时遇到了一些问题,这是我向您提出的问题。

虽然UWP服务器使用Windows.Netowrking和Windows.Networking.Sockets,但它似乎以字符串的形式接收和发送数据。PC App 使用 System.Net 和 System.Net.Sockets,在发送字符串之前,它需要将字符串转换为字节格式。

这会是一个问题吗?我找不到太多关于Windows.Network的文档,我不知道发送前的数据是否被转换为字节。

我不知道发送前的数据是否转换为字节

当您使用网络 API 调用 Write() 或 Send() 时,您通常会选择提供多种数据类型,无论是字符串、字节 [] 还是 int - 但这不会影响数据的物理传输方式。

在内部,传输将以有效的方式(作为二进制流)进行"序列化",但您无需关心这些细节。

因为另一端将能够以字节[],int[]或字符串的形式处理该数据。

您可能想要研究的一个常见问题是字节序,或者检查如何将字符串更改为 byte[]。 即您在字符串或不同字节[]等之间错误地更改的问题。 您可以读取System.Text.Encode以检查您是否在byte[]和字符串之间正确移动。

//Turn a string into a byte[], for your PC app to send
byte[] byteData = System.Text.Encoding.ASCII.GetBytes("Message");
//On the other end read that byte[] into ASCII characters
char[] charsData = System.Text.Encoding.ASCII.GetChars(byteData);
//Check you read something, and turn those chars into a string.
if (charsData != null && charsData.Length > 0)
    string stringData = new string(chars);

最新更新