put 1.pdf
然後我們在伺服器端通過wireshark抓包分析資料報結構,首先我們看看客戶端傳送給伺服器的第乙個資料報:
我們看到它的內容與我們上一節構造的讀請求沒有太大區別。如果伺服器接受客戶端上傳請求,它會向客戶端傳送乙個ack資料報,裡面包含了第乙個資料塊的編號0,如圖:
當收到伺服器傳送過來的ack後,客戶端就可以將要上傳的檔案分割成多個小塊,每個小塊對應相應編號然後通過資料報傳送給伺服器,包含資料塊的資料報與上一節伺服器傳送給客戶端的資料塊資料報一樣:
客戶端傳送第乙個資料塊時,必須以編號1開頭,傳送後必須等待伺服器返回相應的ack資料報後才能傳送第二個資料塊,根據這些原理,我們看看相應**的實現:
public void putfile(string file_name) catch (filenotfoundexception e)
//向伺服器傳送寫請求
sendrequestpacket(option_code_write);
}private void sendrequestpacket(short option) catch (exception e)
}
首先我們通過put_file函式獲得要上傳的檔名,並開啟檔案為讀取內容做準備,sendrequestpacket函式構造了乙個寫請求資料報傳送給伺服器。接下來伺服器會給客戶端傳送ack訊息,同時附帶資料塊編號,因此我們要解析該訊息:
private void handleackpacket(bytebuffer buff)
private void senddatablockpacket()
} catch (ioexception e) catch(exception e)
}
完成上面**後,我們在主入口處增加如下**:
try catch(exception e)
執行後即可將給定檔案上傳給tftp伺服器。
更詳細的講解和**除錯演示過程,鏈結
新書上架,請諸位朋友多多支援:
tftp 簡單文字傳輸協議
tftp trival file transfer protocal 簡單檔案傳輸協議,該協議在熟知埠69上使用udp服務。tftp協議常用於無盤工作站或路由器從別的主機上獲取引導配置檔案,由於tftp報文比較小,能個迅速複製這些檔案。notice 1 tftp協議 所占用的記憶體小,其對應的軟體也...
tftp簡單文字傳輸協議
tftp trivial file transfer protocol,簡單檔案傳輸協議 是tcp ip協議族中的乙個用來在客戶機與伺服器之間進行簡單檔案傳輸的協議,基於udp實現。提供不複雜 開銷不大的檔案傳輸服務。埠號為69。2.tftp的報文格式,如圖所示 圖中顯示了5種tftp報文格式 操作...
TFTP 簡單檔案傳輸協議
1.tftp trivial file transfer protocol 簡單檔案傳輸協議 與ftp不同的是,它使用的是udp的69埠,因此它可以穿越許多防火牆。不過它也有缺點,比如傳送不可靠 沒有密碼驗證等。非常適合傳送小型檔案的 2.配置tftp ecgl linux 自帶 tftp serv...