从TCP端口套接字读取XML数据

时间:2010-06-02 11:14:19

标签: c# xml vb.net sockets tcp

我有一个通过特定端口向我发送数据的设备。数据采用XML格式。

现在我已经做了一个小型控制台应用程序,它监听数据并在屏幕上打印出数据。

现在我的计划是反序列化xml数据,否则我将在数据库中创建insert语句。

1)设备每秒向我发送数据(如果有数据要发送给我)。 2)我不知道该设备将向我发送多少数据。

如何确保在不丢失任何信息的情况下捕获所有数据..

准备讨论了?

C#或VB.NET中的CODE

2 个答案:

答案 0 :(得分:1)

根据XML文档,您需要从套接字流中连续读取,直到找到匹配的根端元素;

<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>

完成,等待下一个文件。

答案 1 :(得分:0)

正如Hans Passant指出的那样,TCP旨在准确交付。要接收连接期间发送的所有tcp数据(听起来像你的情况),请使用我在C# performance methods of receiving data from a socket?的答案中的代码。

收到所有字节后,您可以进行典型的文字转换,例如: string stringData = Encoding.UTF8.GetString(bytes);