Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过套接字发送大型xml文件_C#_Java_Xml_Sockets_Stream - Fatal编程技术网

C# 如何通过套接字发送大型xml文件

C# 如何通过套接字发送大型xml文件,c#,java,xml,sockets,stream,C#,Java,Xml,Sockets,Stream,我必须通过套接字发送大量xml数据。 xml文件示例(服务器端生成此文件): 如何处理这些数据 例如,如果我将所有文件数据读取到客户端的变量,然后进行处理。我认为这不好——可能是问题(大量数据) 将所有数据写入临时文件,然后进行处理?创建文件,删除 同时读取和处理。但是xml不是完整的 还有别的吗 你可以这样做 另一个例子是几年前,我为一家使用体育有线电视服务的广播公司开发了一个解决方案,该服务正是以这种方式工作的 他们的一些建议: 确保每封邮件都有一个唯一的标识符。它可以像documen

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

如何处理这些数据

  • 例如,如果我将所有文件数据读取到客户端的变量,然后进行处理。我认为这不好——可能是问题(大量数据)
  • 将所有数据写入临时文件,然后进行处理?创建文件,删除
  • 同时读取和处理。但是xml不是完整的
  • 还有别的吗

  • 你可以这样做


  • 另一个例子是几年前,我为一家使用体育有线电视服务的广播公司开发了一个解决方案,该服务正是以这种方式工作的

    他们的一些建议:

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

  • 您看过在流上使用XmlReader吗?非常感谢。多次发送消息-我可以。在客户端,我可以使用不可行的xml字符来处理数据。@Elena-很乐意帮忙。祝你的项目好运。
    <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);