-1

我正在根据我在此处找到的示例实现一个简单的文件发送方法,但是在发送实际字节之前,我无法找到有关如何发送文件名和/或类型的任何参考。我见过的所有例子,都是在接收端手动设置文件名。

到目前为止,我唯一的想法是将它作为字符串单独发送,但我只是好奇我是否错过了一些更简单/方便的方法。那么,TcpClient/TcpListener 中是否有一种方法可以发送我错过的文件名?有没有一种我根本没有遇到过的常见方法?

如有必要,我也可以发布代码。

4

1 回答 1

1

您可以发送的只是“数据”,一个扁平的字节数组。因此,您将需要使用某种协议,发送者和侦听器都适用于数据。

你可以说你想传输“两个数据块”,在这种情况下你可以:

  • 发送每个块的大小,然后是实际数据,然后是下一个块大小和数据,或者:
  • 使用分隔符(仅在实际数据不包含该分隔符时才有效(即使这样也有解决方案,例如转义数据中的分隔符))

或者,您可以格式化数据,例如通过发送一个 Xml 文档,其中包含:

<myData>
  <filename>txt.txt</filename>
  <data>F83BA=</data>
</myData>

问题当然是必须对文件内容进行编码才能验证 Xml(例如 base64 编码)。

于 2013-04-09T08:57:07.450 回答