telnet动态调试模块:将日志输出到telnet终端,通过telnet终端调用自定义注册的函数
test_app文件夹;[telnet-server]
; 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中键入如下输入打印
t1 abc
t1(abc)
t2 abc 123
t2(abc, 123)
Telnet协议是TCP/IP协议族中的一员,属于应用层协议,远程登录是指用户使用Telnet命令,使自己的计算机暂时成为远程 主机的一个仿真 终端的过程。它只负责把用户输入的每个字符传递给 主机,再将主机输出的每个信息 回显在 屏幕上。如下图是一个简单的过程。

Telnet服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用Telnet协议来工作。那么,什么是Telnet协议?它都具备哪些特点呢?
Telnet是位于OSI模型的第7层—应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
**作用:**Telnet提供远程登录功能,使得用户在本地主机上运行Telnet客户端,就可登录到远端的Telnet服务器. 在本地输入的命令可以在服务器上运行,服务器把结果返回到本地,如同直接在服务器控制台上操作. 这样就可以在本地远程操作和控制服务器。
工作过程
使用Telnet协议进行 远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序;必须知道远程 主机的Ip地址或 域名;必须知道登录标识与口令。
Telnet远程登录服务分为以下4个过程:
1)本地与远程 主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程 主机的Ip地址或 域名;
2)将 本地终端上输入的用户名和口令及以后输入的任何命令或字符以 NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从 本地主机向远程主机发送一个IP数据包;
3)将远程 主机输出的 NVT格式的数据转化为本地所接受的格式送回 本地终端,包括输入命令 回显和命令执行结果;
4)最后, 本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。
缺点:
Telnet协议是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,如果我们要使用远程登录,使用前应在远端服务器上检查并设置允许Telnet服务的功能,或者可以选择具有加密功能的SSH程序。

如上为程序的主要模块
程序的功能为