gpt4 book ai didi

c# - 如何通过套接字发送一个大的xml文件

转载 作者:行者123 更新时间:2023-11-30 09:39:10 24 4
gpt4 key购买 nike

我必须通过套接字发送大量的 xml 数据。xml文件示例(服务器端生成这样一个文件):

<message>
<data>
<param1>12345</param1>
<param2>234</param2>
</data>
...
<data>
<param1>321</param1>
<param2>34234</param2>
</data>
</message>

然后客户端收到这样的数据。客户端必须解析此文件并将参数插入数据库。

客户端按部分(字节大小)接收此数据:

byte[] receivedData = new byte[1024];
int receivedBytesLen = streamFromServer.read(receivedData);

我如何处理这些数据?

  1. 比如我把所有的文件数据读到客户端的变量中,然后处理。我认为这不好-可能是问题(大量数据)。
  2. 将所有数据写入临时文件然后处理?创建文件,删除...
  3. 同时阅读和处理。但是 xml 不完整。
  4. 还有别的吗?

最佳答案

几年前,我为一家使用体育新闻服务的广播公司开发了一种解决方案,这种解决方案正是以这种方式运作的。

他们的一些提示:

  1. 确保每封邮件都有唯一的标识符。它可以像文档元素中的 guid 属性一样简单。
  2. 多次传输消息(除非这是点对点的并且您在解决方案中内置了确认)。客户端应维护成功处理消息的唯一标识符的哈希表,并忽略已处理的重复项。
  3. 让您的消息保持简短。您真的需要所有“数据”节点都在一条消息中吗?您不能将它们作为单独的消息发送吗?
  4. 使用不可行的 XML 字符分隔您的消息。 CR 和 LF 将不起作用。此服务使用 {0x02} 字节来分隔消息。在客户端使用它来查找 XML 文档之间的分离点。

关于c# - 如何通过套接字发送一个大的xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9910794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com