通过tcp中继目录树的最有效方法是什么? C ++

时间:2012-06-01 19:34:03

标签: c++ tcp tree directory

我正在尝试通过TCP发送目录树结构。树可能在子目录中。我不想发送实际内容,但或多或​​少在一个字节流中发送列表。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:1)

要发送树,只需递归执行以下操作:

发送root用户,然后发送其子级。

答案 1 :(得分:0)

根据情景,“最佳”有很多解释。如果您可以提供一种格式,使您的客户(TCP接收器)更容易使用您的数据,那么这可能是一个好主意。

通常我认为最好的是最容易理解的方式。例如,XML表示会很好,因为XML无处不在 - 每个人都知道(或者他们应该)。有一百万个COTS库可以处理它,而且众所周知。

XML本身也可以使实体包含其他实体,并且默认情况下节点之间有父/子 - 因此格式将很好地镜像目录结构。

xml的缺点是它非常冗长。你可以构建一个平面文件格式,如果你愿意处理额外的复杂性(文件大小cam在网络应用程序中真正重要),它会小得多。如果您要使用平面文件表示,请考虑如何在单个数据库表(名称,文件/文件夹,parent_directory等)中构建数据。

答案 2 :(得分:0)

我认为你最有利于提高效率(我假设你的意思是你正在寻找一种需要相对于其他解决方案发送少量字节的解决方案),可读性和可移植性就像{{ 3}}

{"dir":"/","children":
  [{"dir":"bin","children":
     [{"file":"bash"},
      {"file":"csh"}]
   },
   {"dir":"home","children":null}]}