C# 如何解决通过套接字接收数据的问题?
我目前正在对HMI进行现代化,为此,我使用微软提出的平台UWP。HMI的旧版本是在C# 如何解决通过套接字接收数据的问题?,c#,c++,visual-studio,xaml,uwp,C#,C++,Visual Studio,Xaml,Uwp,我目前正在对HMI进行现代化,为此,我使用微软提出的平台UWP。HMI的旧版本是在C++中开发的,但为了满足新的需求,现在是在C#/XAML中开发的 我负责应用程序的所有通信部分,它与服务器进行永久通信 为了处理这个连接,我使用套接字和后台任务来永久读取数据。在连接级别没有问题,应用程序可以很好地连接到服务器。通过cons,我无法读取HMI接收到的数据 这是旧代码的一部分(部分数据恢复):(C++) 当然,我遇到的一个问题是显示此错误: No mapping for the Unicode ch
C++
中开发的,但为了满足新的需求,现在是在C#/XAML
中开发的
我负责应用程序的所有通信部分,它与服务器进行永久通信
为了处理这个连接,我使用套接字和后台任务来永久读取数据。在连接级别没有问题,应用程序可以很好地连接到服务器。通过cons,我无法读取HMI接收到的数据
这是旧代码的一部分(部分数据恢复):(C++
)
当然,我遇到的一个问题是显示此错误:
No mapping for the Unicode character exists in the target multi-byte code page
我怎样才能解决这个问题
是否有使用UWP套接字读取和解码字节的功能或方法?同时提到了
ReadBuffer
和ReadBytes
方法。从帮助中可以看出,DataReader用于从数据库读取数据。你应该用别的东西代替。大概还有。@botje我测试过,但效果不太好,你有示例代码吗?@Dialogius TcpClient替换了当前使用它的所有登录系统…其中提到了一个ReadBuffer
和一个ReadBytes
方法。我在帮助中看到的DataReader用于从数据库读取数据。你应该用别的东西代替。大概还有。@botje我已经测试过了,但效果不是很好,你有示例代码吗?@Dialogius TcpClient替换了所有当前运行它的登录系统。。。
var socket = socketInformation.StreamSocket;
DataReader reader = new DataReader(socket.InputStream);
reader.InputStreamOptions = InputStreamOptions.Partial;
await reader.LoadAsync(250);
var dataString = reader.ReadString(reader.UnconsumedBufferLength);
localSettingsData.Values["data"] = dataString;
No mapping for the Unicode character exists in the target multi-byte code page