2013-04-09 71 views
-1

我實現一個簡單的文件發送方法基礎上,我發現here的例子,但是我無法找到關於如何去發送實際字節之前發送的文件名和/或類型的任何參考。我見過的所有例子,在接收端手動設置文件名。的TcpClient /的TcpListener名

我唯一的想法到目前爲止被單獨發送,作爲一個字符串,但我只是好奇,如果我失去了這樣的一些比較容易/便捷方式。那麼,TcpClient/TcpListener中是否有方法發送我錯過的文件名?有沒有一種常見的做法,我只是沒有碰到?

如有需要,我也可以發佈代碼。

回答

1

所有你可以發送的是「數據」,一個扁平的字節數組。所以你將需要使用某種協議,發送者和監聽者都適用於這些數據。

你可以說你要傳遞「兩個數據塊」,在這種情況下,您可以:

  • 發送的每個塊的大小,其次是實際的數據,其次是下一個塊的大小和數據或:
  • 使用分隔符(這隻能如果實際數據不包含分離器(甚至再有像逃逸中的數據分離器)解決方案)

另外,您可以格式中的數據,例如通過發送一個XML文檔,包含:

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

是當然的問題,即,文件內容必須是爲了編碼爲XML進行驗證(base64編碼例如)。

相關問題