對於乙個客戶端軟體,公升級程式是很常見的,當客戶端有新增需求或者bug修復時,後台發布公升級版本,前端進行版本比較並進行公升級,以實現客戶端迭代更新的效果,因此學會如何設計乙個簡單的客戶端公升級流程是我們必須要掌握的能力。
公升級程式也是乙個win32介面程式,因為需要顯示更新進度,以及與使用者之間的互動。公升級程式一般是由主程式拉起來的,但是也存在使用者單獨啟動它,那麼這時候公升級程式也需要加入服務端版本檔案獲取,以及本地版本比較等一系列的操作。有兩種解決方案:
1,公升級程式中也加上版本獲取和版本比較的流程,根據它啟動的引數來判斷,對於控制台程式,int main(int argc, char** argv),argv就是引數;對於介面程式,int _stdcall winmain(
hinstance hinstance,
hinstance hprevinstance,
lpstr lpcmdline,
int ncmdshow
),lpcmdline就是啟動引數。
2,可以直接去掉主程式中的版本獲取和版本比較的流程,將它只放在公升級程式中來實現,各種公升級互動都是由公升級程式來進行的,公升級程式可以一直掛在後台程序中。
個人更傾向於第二種方式。
服務端的實現有多種,比如用原生socket實現來進行客戶端和服務端的通訊,也可以吧服務端做成http服務端。當然更方便的是利用作業系統的特性來達到客戶端和服務端的通訊以及檔案傳輸功能,因為我本人對windows作業系統熟一點,所以我們的服務端部署在windows server 2008上面,使用的是windows自帶的ftp伺服器。如何在windows上開啟ftp服務功能,請參考我的另一篇部落格,不再重複。
ftp服務端目錄主要分為乙個檔案和乙個資料夾:
1,版本資訊檔案
本檔案中主要包含了當前服務端的版本資訊,以及公升級更新的內容(本次公升級主要更新了一下內容:1,…2,…),可以使用ini配置檔案和xml檔案,具體選擇哪一種看個人使用習慣。
Mac OS 公升級svn客戶端
mac os 10.9 系統帶的預設svn客戶端是1.7.x版本的。在使用checkout來的1.8版本的工程下 svn info 提示需要公升級客戶端 安裝完成,最後一步提示新增svn位址到path變數中,然後在終端執行以下命令 cd vi bash profile 在 bash profile檔...
客戶端公升級專案小結
本篇文章主要用於客戶端公升級程式整個從需求 設計 開發 測試和發布整個過程中的回顧,用於梳理這過去大半年時間內,在此專案上面的經驗教訓,在以後開發類似專案時,避免走彎路,避免自己挖坑以及踩坑。小結,在產品需求階段,開發人員要有一定的介入,產品人員不要想著第一期就把能想到的所有功能和情況都給上線,做好...
使用tcp select實現客戶端與客戶端的通訊
使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...