目标c-CFStreamCreateBoundPair正在向流写入4kb数据,流将解析包含xml起始节点而不包含结束节点



CFStreamCreateBoundPair正在向流写入4kb数据,流将解析包含xml起始节点但不包含结束节点的数据。如何编写代码和管理代码,以便将正确的xml数据写入nsoutputstream。

CFStreamCreateBoundPair(NULL,(CFReadStreamRef*)&iStream,(CFWriteStreamRef*)&oStream,4096);

绑定流对的工作方式是,您可以将块写入写入流,其他内容可以从读取流中读取块。您已在此处将transferBufferSize设置为4096。这指示数据将以4096字节(4K)的块从写入流移动到读取流。如果您的源数据大于4K,但<8K的长度,这可以解释为什么你只得到它的前4K。如果,比如说,你的数据是6K长,那么第一个4K将被发送到读取流,然后下一个2K将被排队,但我的理解是,它将在缓冲区中等待,直到发生以下两件事之一:

  1. 到达的数据足以完成第二个4K块
  2. 写入流已关闭

因此,如果6K是您要写入写入流的全部内容,那么您需要使用CFWriteStreamClose(oStream);关闭写入流,以便将最后的2K发送到读取流。否则,我的期望是它会永远坐在那里。

相关内容

  • 没有找到相关文章

最新更新