我有一台设备通过特定的端口向我发送数据。数据采用XML格式。从TCP端口套接字读取XML数据
现在我已经做了一个小的控制台应用程序,它监听数据并在屏幕上打印数据。
现在我的计划是反序列化xml数据,否则我会在数据库中创建insert语句。
1)设备每秒向我发送数据(如果有数据要发送给我)。 2)我不能说设备将发送给我多少数据。
我怎样才能确保捕获所有数据,而无需任何松动的信息..
准备讨论?
代码C#或VB.NET
我有一台设备通过特定的端口向我发送数据。数据采用XML格式。从TCP端口套接字读取XML数据
现在我已经做了一个小的控制台应用程序,它监听数据并在屏幕上打印数据。
现在我的计划是反序列化xml数据,否则我会在数据库中创建insert语句。
1)设备每秒向我发送数据(如果有数据要发送给我)。 2)我不能说设备将发送给我多少数据。
我怎样才能确保捕获所有数据,而无需任何松动的信息..
准备讨论?
代码C#或VB.NET
每XML文档,则需要直到找到一个匹配的根端元素从流套接字汽车无读取;
<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>
完成,并等待下一个文件。
你有任何代码片段? – 2010-06-02 11:30:27
正如Hans Passant所指出的那样,TCP是为准确交付而设计的。要接收连接期间发送的所有tcp数据(听起来像你的情况),请使用我的答案中的代码C# performance methods of receiving data from a socket?。
一旦你收到所有的字节,你可以做典型的文本转换,例如string stringData = Encoding.UTF8.GetString(bytes);
TCP是为防止数据丢失的明确原因而设计的。你需要解释你为什么认为它不适合你。一秒约为20亿个CPU周期。 – 2010-06-02 12:34:07