2013-04-09 31 views
-1

我实现一个简单的文件发送方法基础上,我发现here的例子,但是我无法找到关于如何去发送实际字节之前发送的文件名和/或类型的任何参考。我见过的所有例子,在接收端手动设置文件名。的TcpClient /的TcpListener名

我唯一的想法到目前为止被单独发送,作为一个字符串,但我只是好奇,如果我失去了这样的一些比较容易/便捷方式。那么,TcpClient/TcpListener中是否有方法发送我错过的文件名?有没有一种常见的做法,我只是没有碰到?

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

回答

1

所有你可以发送的是“数据”,一个扁平的字节数组。所以你将需要使用某种协议,发送者和监听者都适用于这些数据。

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

  • 发送的每个块的大小,其次是实际的数据,其次是下一个块的大小和数据或:
  • 使用分隔符(这只能如果实际数据不包含分离器(甚至再有像逃逸中的数据分离器)解决方案)

另外,您可以格式中的数据,例如通过发送一个XML文档,包含:

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

是当然的问题,即,文件内容必须是为了编码为XML进行验证(base64编码例如)。

相关问题