我正在編寫一個通過TCP層發送文件的協議。命令通常如何與有效載荷分離?我事先知道有效載荷有多大,我應該事先發送長度嗎?在TCP上運行的寫入協議
我也在考慮只使用HTTP來傳輸文件,有關這是否會花費更少的時間的任何意見?我正在使用.NET,因此底層協議已經運行良好。
我正在編寫一個通過TCP層發送文件的協議。命令通常如何與有效載荷分離?我事先知道有效載荷有多大,我應該事先發送長度嗎?在TCP上運行的寫入協議
我也在考慮只使用HTTP來傳輸文件,有關這是否會花費更少的時間的任何意見?我正在使用.NET,因此底層協議已經運行良好。
命令通常如何與有效載荷分離?我事先知道 有效載荷有多大,我應該事先發送長度嗎?
是。典型的模式是發送一個固定長度的頭(例如,以big-endian整數格式的字節數),接着是數據的實際字節(並且可選地根據需要重複)。一定要爲你的頭部使用固定寬度的類型(例如uint64_t而不是unsigned long),因爲你可能(大概)像你的協議一樣工作,不管它編譯的是什麼機器。
我也在考慮只使用HTTP來傳輸文件,任何 的意見,這是否會花費更少的時間?我正在使用.NET ,因此底層協議已經運行良好。
無論哪種方式將工作正常。使用任何你最舒服的方式。
使用更高級別的協議。這將爲您節省大量時間。 HTTP聽起來很合適,因爲你似乎有一個請求 - 響應模式。
編寫TCP協議很困難。最好的方法是:不要這樣做。
如果HTTP不適用於您,請調查協議緩衝區。
TCP協議確實不是那麼難。如果您可以讀取和寫入文件,則可以讀取和寫入TCP流。 –
@JeremyFriesner這是非常不真實的。只要看看所有的TCP問題即可。文件非常簡單。 – usr