tightvnc server 原版改造、精簡


改造一:去掉 httpServer

tightvnc server 自帶了一個httpServer,用於提供web訪問。但是查看端需要安裝java插件,然而我們並不需要該部分功能,精簡掉它,可以適當降低程序資源占用和可執行文件大小。

 

 

准備環境:

VS2015 編譯原版 tightvnc 2.8.27 源碼

 

修改CPP文件:tightvnc-2.8.23-gpl\tvnserver-app\TvnServer.cpp

行67,注釋掉:m_httpServer(0),

 

 

行132,注釋掉:restartHttpServer();
行143,注釋掉:stopHttpServer();

 

行198-行210,全部注釋掉;

 

行323-行339,注釋掉整個函數:void TvnServer::restartHttpServer()

 

行389-行402,注釋掉整個函數:void TvnServer::stopHttpServer()

 

 

修改頭文件:tightvnc-2.8.23-gpl\tvnserver-app\TvnServer.h

行38,注釋掉:#include "http-server-lib/HttpServer.h"

 

行145,注釋掉:void restartHttpServer();
行149,注釋掉:void stopHttpServer();
行191,注釋掉:HttpServer *m_httpServer;

 

編譯結果驗收

精簡后,通過 Release Win32 編譯,tightvnc server 體積由 1.43MB 縮小為 1.08MB,縮小了大概三分之一的大小,實際測試對現有功能無任何影響。

如下圖所示:

 

改造二:去掉控制進程

tightvnc server 無論是使用服務模式啟動還是普通進程模式啟動,都會自動啟動一個控制進程,服務模式運行參數為controlservice,進程模式運行參數則為controlapp,該控制進程用於創建托盤圖標,提供配置界面等功能。

 

 

由於我們的tightvnc server實際使用時已自動化配置了各項參數值,不需要通過界面去配置任何參數,故不需要該進程。

修改方法:

修改tvnserver-app中的源文件:TvnServerApplication.cpp,

行88,注釋掉:m_tvnControlRunner = new WsConfigRunner(&m_fileLogger); 

行92,注釋掉:delete m_tvnControlRunner;

如下圖所示:

 

 

修改后編譯運行,不論是否有用戶連接,始終只會存在一個進程。如下圖所示:

應用程序模式:

 

服務模式:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM