• 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;

    如下图所示:

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

    应用程序模式:

    服务模式:

  • 相关阅读:
    C#中 类的多态
    字段与属性
    C# ASCII与字符串间相互转换
    TextBox控件常用方法总结
    使用hadoop mapreduce分析mongodb数据:(2)
    使用hadoop mapreduce分析mongodb数据:(1)
    Linux MPI集群配置
    VIM文本替换
    怎么解决python中TypeError: can't pickle instancemethod objects的这个错误
    LeetCode ZigZag problem
  • 原文地址:https://www.cnblogs.com/radmin/p/13660310.html
Copyright © 2020-2023  润新知