二、在应用中升级----网络部分
剛開始接觸網(wǎng)絡編程不久,這里僅僅是作為記錄,大神勿噴哈,有想法咱們可以留言討論滴。
該部分要解決的主要是兩個問題,一個服務器端,一個客戶端。
服務器端負責文件的準備,客戶端負責文件的接收以及修改對應的文件。
這里采用epoll方式進行通信,允許多機連接服務器端。
服務器端:
這里我考慮的主要問題是:怎么實現(xiàn)讓客戶端知道升級哪部分,例如我想升級u-boot或者內核,那么是不是服務器段需要通知客戶端我要升級哪部分。答案是肯定的,因此我詳設計一個update.conf配置文件,用來說明升級哪部分,以及要升級的文件系統(tǒng)的路徑,另外還需要一個使能標志,還需要其他么?有人給出意見么?謝謝了。
客戶端:
該部分考慮的問題主要是,讀取服務器端的配置文件是否存在,然后判斷使能標志,讀取升級的內容配置,進而去處理升級的任務。這里有個問題,是否需要考慮斷點續(xù)傳呢?我感覺暫時沒需要,局域網(wǎng)內傳輸,而且只是u-boot、內核、部分的文件系統(tǒng)文件,也不是整個文件系統(tǒng)幾百MB,所以無需斷點續(xù)傳,即使突然斷線,重新連接下載即可。
為了升級好管理,在根文件系統(tǒng)目錄下建立一個update文件夾用于存放下載的文件,完成升級后會自動刪除下載的所有文件(不知道這樣好不好)。
有一個新想法,在之前的模式上做個改動。Linux系統(tǒng)使用socket獲取網(wǎng)絡上的升級文件,放到指定的分區(qū),在Linux系統(tǒng)中僅僅做這個任務,剩下的是重新啟動系統(tǒng),所有的升級覆蓋工作交給u-boot完成。
這樣的好處是,既然不是在Linux中升級,那么就無需理會是否應用程序有進程執(zhí)行,直接覆蓋要升級的文件即可,而且該方法允許升級整個文件系統(tǒng)。
后面的記錄將會已此為藍本。
總結
以上是生活随笔為你收集整理的二、在应用中升级----网络部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一 在应用中升级u-boot、内核以及文
- 下一篇: 三、在应用中升级----网络编程部分