從檔案傳輸到通訊協議

2021-09-02 03:49:49 字數 882 閱讀 6405

人啊,是不應該說謊的,不過貌似我已經說了很多謊了

目前的介面我暫時做成了這個樣子,但是檔案傳輸功能還是沒有新增進來,因為錯失一節課,導致我到現在對於檔案傳輸這個玩意兒還是一知半解,不過今天比昨天好。

我的題目是從檔案傳輸到通訊協議,有人可能會說,不是應該先有了通訊協議,在才能實現檔案傳輸麼。沒錯!是這樣,但從學習的角度來說,我們首先是要向實現檔案傳輸這個功能,然後必須去了解通訊協議。

先說說要做到檔案傳輸(是在之前的群聊客戶端裡面加入傳檔案的功能),我們要首先解決什麼問題:區分要傳輸的內容到底是檔案還是普通的文字(即文字訊息)和檔案怎麼傳輸。之前我們已經解決掉了文字傳輸:以\r\n來分割字串,以實現訊息的完整性(即為文字訊息的傳輸協議)。

對於檔案傳輸,我們就需要乙個關於檔案傳輸的通訊協議:

首先,我們知道每一種訊息(文字和檔案)都是由兩部分組成的:訊息頭和訊息體。每一種訊息頭的結構格式都是固定的,而訊息體的格式則因為訊息型別不同而不同。

訊息頭的結構如下圖:

對於訊息體,文字訊息的訊息體部分很簡單,就只是聊天的內容。而檔案的訊息體則是由組成檔案的位元組和檔名表示。

在我們傳送訊息時,必須按照順序和格式資料一次寫入輸出流物件中。伺服器端在讀取的時候,首先要先讀取訊息的總長度,在讀取訊息的型別,判斷此訊息是文字還是檔案,最後根據型別對訊息做出相應的措施。

通過以上過程我們可以知道所謂的通訊協議,可以說是通訊雙方都必須遵守的通訊規則,只能遵守這個規定,通訊雙方甚至多方才能正常通訊。

進步並不會在一瞬間。

將本地檔案傳輸到GitHub

統一概念 清理git的快取 git rm r cached 清空當前資料夾的所有快取 本地的依然儲存 git rm f 將當前資料夾的檔案清空,本地檔案也會清空,站也找不到,該指令請謹慎執行 git clean df 本地檔案同樣會被刪除,站也找不到,該指令請謹慎執行 檢視當前git的狀態 git ...

TCP檔案傳輸到伺服器

流式套接字對應與tcp協議。資料報套接字,對應與udp協議。socket 這種約定,一台計算機可以接收其他計算機的資料,也可以向其他計算機傳送資料 客戶向伺服器傳送乙個txt檔案,伺服器返回一句話,通知客戶端已經上傳成功了。客戶類 向伺服器傳送個檔案 public class client01 關閉...

檔案傳輸協議

sftp 安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。sftp為ssh的一部份,是一種傳輸檔案到伺服器的安全方式。在ssh軟體包中,已經包含了乙個叫作sftp secure file transfer protocol 的安全檔案傳輸子系統...