我有一个通过特定端口给我发送数据的设备。数据是XML格式的。
现在我已经做了一个小的控制台应用程序,它侦听数据并在屏幕上打印出数据。
现在,我的计划是对xml数据进行反序列化,或者在数据库中创建insert语句。
1)设备每秒向我发送数据(如果有数据要发送给我)。2)我不能说出设备会发送给我多少数据。
如何确保在不丢失任何信息的情况下捕获所有数据。
准备好讨论了吗?
C#或VB.NET中的代码
发布于 2010-06-02 11:26:44
对于每个XML文档,您将需要不断地从套接字流中读取,直到找到匹配的root end元素;
<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>
完成,然后等待下一个文档。
发布于 2011-03-31 17:49:17
正如Hans Passant所指出的,TCP是为精确传输而设计的。要接收在连接期间发送的所有tcp数据(听起来像您的情况),请使用我在C# performance methods of receiving data from a socket?的答案中的代码。
一旦你收到了所有的字节,你就可以进行典型的文本转换,例如string stringData = Encoding.UTF8.GetString(bytes);
https://stackoverflow.com/questions/2957098
复制