概述
Telnet动态调试模块是一个允许将日志输出到Telnet终端并通过Telnet终端调用自定义注册函数的工具。本文档将详细介绍其安装、配置和使用方法。
仓库代码
项目地址:https://gitee.com/liudegui/telnet-print
环境要求
- GCC版本 5.4 或以上
- Boost库版本 1.65 或以上
确保可执行程序与配置文件位于同一文件夹下。使用示例可查看 test_app
文件夹。
配置文件示例
[telnet-server]
server_port = 2500
username = test
passwd = abc
内置命令
help
- 查看帮助exit
- 退出终端all
- 显示所有命令
函数注册示例
void test1(std::string param1)
{
// 实现代码
}
class CTest {
public:
void test2(std::string param1, std::string param2)
{
// 实现代码
}
};
CTest otest;
void regFuncs()
{
TelnetServer::regist->attach<std::string>("t1", test1);
TelnetServer::regist->attach<std::string, std::string>("t2", &CTest::test2, otest);
}
Telnet命令示例
在Telnet终端中可以按以下格式调用注册的函数:
-
调用
test1
函数:t1 abc t1(abc)
-
调用
test2
函数:t2 abc 123 t2(abc, 123)
原理
Telnet协议属于TCP/IP协议族中的应用层协议,允许用户通过网络连接到远程主机。本模块利用Telnet协议提供了远程调试和函数调用的能力。
程序结构
程序主要模块包括:
TelnetSession
:处理Telnet会话的主要业务逻辑SessionManager
:管理所有Telnet会话对象TelnetServerImpl
:管理TCP连接TelnetServer
:对外接口,提供启动、停止和打印接口