zoukankan      html  css  js  c++  java
  • tightvnc server 原版改造、精简

    改造一:去掉 httpServer

    tightvnc server 自带了一个httpServer,用于提供web访问。但是查看端需要安装java插件,然而我们并不需要该部分功能,精简掉它,可以适当降低程序资源占用和可执行文件大小。

    准备环境:

    VS2015 编译原版 tightvnc 2.8.27 源码

    修改CPP文件:tightvnc-2.8.23-gpl vnserver-appTvnServer.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 vnserver-appTvnServer.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;

    如下图所示:

    修改后编译运行,不论是否有用户连接,始终只会存在一个进程。如下图所示:

    应用程序模式:

    服务模式:

  • 相关阅读:
    在数据集下建立FeatureClass
    打开对话框保存对话框
    C# 向数据库中添加数据
    OleDbCommand OleDbDataAdapter比较研究素材
    C# 判断数据库是否存在某张表
    AE常见问题、异常处理
    制作停靠窗体、悬浮窗Dockpanel
    11. Container With Most Water(js)
    10. Regular Expression Matching(js)
    9. Palindrome Number(js)
  • 原文地址:https://www.cnblogs.com/radmin/p/13660310.html
Copyright © 2011-2022 走看看