与远程登陆服务器的交互方法及装置的制作方法

文档序号:7998826阅读:140来源:国知局
专利名称:与远程登陆服务器的交互方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种与远程登陆(telnet)服务器的交互方法及装置。
背景技术
telnet作为一种简单、直观、通用的协议方式,在telnet服务器上提供各种用户程序,让用户登陆进行操作的方式,为各大厂商所广泛使用。
很多情况下,要求客户端能够实时执行服务端命令。例如,通讯行业运营商增加新的业务,需要与新的外围客户端设备实时通讯。但是,新的外围客户端增加后,并不能直接使用原有telnet服务器进行实时通讯,给运营商拓展业务带来了不利。
在相关技术中,很多厂商为了实现手工和自动兼容的方式,提供telnet服务器及相应运行程序,但这也要求客户端除了使用telnet工具手动登陆操作,还要开发自动登陆telnet服务器并运行程序的方法。
针对相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,目前尚未提出有效的解决方案。发明内容
针对相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,本发明提供了一种与telnet服务器的交互方法及装置,以至少解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种与telnet服务器的交互方法。
根据本发明的与telnet服务器的交互方法,包括:读取配置文件,根据配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆各个telnet服务器,其中,配置文件包括一个或多个telnet服务器地址、端口号以及认证信息;接收通过通信协议发送的携带telnet命令码的消息,并封装消息;使用与消息对应的telnet服务器的空闲链路将封装后的消息发送至与其对应的telnet服务器执行。
优选地,读取配置文件之前,该方法还包括配置至少以下之一信息:登陆后的telnet服务器的系统提示符;登陆后需要首先执行的命令;执行特定可执行程序后进入的命令提示符;每个连接没有消息交互时端口连接主动断开的时间。
优选地,登陆各个telnet服务器之前,该方法还包括:与各个telnet服务器协商所采用的登陆方式,其中,登陆方式包括网络虚拟终端NVT方式和ANSI方式。
优选地,接收通过各种通信协议发送的携带telnet命令码的消息包括:接收来自外围模块通过各种通信协议发送的携带telnet命令码的消息;和/或接收内部模块通过公用函数或线程间消息发送的携带telnet命令码的消息。
优选地,将封装后的消息发送至与其对应的telnet服务器执行之后,该方法还包括:接收并解析各个telnet服务器返回的与telnet命令码对应的消息,并将解析后的消息发送给telnet命令码的发送方。
优选地,在配置文件包括登陆后需要首先执行的命令的情况下,登陆各个telnet服务器之后,该方法还包括:执行首先执行的命令;在该命令执行成功后,将登陆成功的链路加入telnet链路池。
优选地,接收通过各种通信协议发送的携带telnet命令码的消息包括:接收通过各种通信协议发送的携带telnet命令码的请求消息;从telnet链路池中查找与请求消息对应的telnet服务器的空闲链路。
优选地,登陆各个telnet服务器之后,该方法还包括:周期性地检测各个telnet服务器的配置链路连接状态;重连系统自动断开的链路,和/或重连异常断开的链路。
为了实现上述目的,根据本发明的另一方面,提供了一种与telnet服务器的交互装置。
根据本发明的与telnet服务器的交互装置,包括:建立连接模块,用于读取配置文件,根据配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆各个telnet服务器,其中,配置文件包括一个或多个telnet服务器地址、端口号以及认证信息;格式转换模块,用于接收通过通信协议发送的携带telnet命令码的消息,并封装消息;命令执行模块,用于使用与消息对应的telnet服务器的空闲链路将封装后的消息发送至与其对应的telnet服务器执行。
优选地,该装置还包括:配置模块,用于配置至少以下之一信息:登陆后的telnet服务器的系统提示符;登陆后需要首先执行的命令;执行特定可执行程序后进入的命令提示符;每个连接没有消息交互时端口连接主动断开的时间。
通过本发明,采用读取配置文件中的telnet服务器地址、端口号以及认证信息从而自动登陆到各个telnet服务器上,对接收到的携带telnet命令码的消息经过封装后发送至telnet服务器执行的方式,解决了相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,提高了客户端与telnet服务器之间交互的实时性。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的与telnet服务器的交互方法的流程图2是根据本发明实施例的与telnet服务器的交互装置的结构框图3是根据本发明实施例的与telnet服务器的优选交互装置的结构框图4是本发明实施例一的自动登陆TELNET服务器并运行程序的系统结构示意图5是本发明实施例二的telnet通讯模块自动登陆及链路维护的流程图6是本发明实施例三的接收telnet发送请求并到telnet服务器执行请求的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为使客户端能够实时执行服务端命令,这也要求客户端除了使用telnet工具手动登陆操作,还要开发自动登陆telnet服务器并运行程序的方法。基于上述考虑,本发明提供了一种与telnet服务器的交互方法,图1是根据本发明实施例的与telnet服务器的交互方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,读取配置文件,根据配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆各个telnet服务器,其中,上述配置文件包括一个或多个telnet服务器地址、端口号以及认证信息;
步骤S104,接收通过各种通信协议发送的携带telnet命令码的消息,并封装该消息;
步骤S106,使用与该消息对应的telnet服务器的空闲链路将封装后的该消息发送至与其对应的telnet服务器执行。
本实施例通过上述步骤,采用读取配置文件中的telnet服务器地址、端口号以及认证信息从而自动登陆到各个telnet服务器上,对接收到的通过各种通信协议发送的携带telnet命令码的消息经过封装后发送至telnet服务器执行的方式,使得接收到的通过各种通信协议发送的携带telnet命令码的消息都能够在telnet服务器上自动执行,解决了相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,提高了客户端与telnet服务器之间交互的实时性。
其中,步骤S104中,可以将接收到的以各种通信协议格式发送的携带telnet命令码的消息封装为telnet服务器可以识别的消息,然后在步骤S106中发送给与携带telnet命令码的消息对应的telnet服务器。即,封装消息是为了协议格式的转换。
在读取配置文件之前,还可以配置除了 telnet服务器地址、端口号以及认证信息之外的一些信息,以提高本方法的使用灵活性。例如,还可以配置至少以下之一的信息:登陆后的telnet服务器的系统提示符;登陆后需要首先执行的命令;执行特定可执行程序后进入的命令提示符;每个连接没有消息交互时端口连接主动断开的时间。这样可以增加系统的灵活性。
在上述步骤S102中,在登陆各个telnet服务器之前,还可以与各个telnet服务器协商所采用的登陆方式,其中,登陆方式包括网络虚拟终端(Net Virtual Terminal,简称为 NVT)方式和标准终端(American National Standards Institute Terminal,简称为ANSI)方式等。通过这种方式,可以在协商登陆方式之后进行登陆,登陆效率更高。
在上述步骤S104中,通过对通信协议发送的携带telnet命令码的消息进行封装的方式,能够极大地提高本方案的使用范围,例如,接收通过各种通信协议发送的携带telnet命令码的消息可以包括:接收来自外围模块通过各种通信协议发送的携带telnet命令码的消息;和/或接收内部模块通过公用函数或线程间消息发送的携带telnet命令码的消息。
需要说明的是,此处的外围模块和内部模块是相对于此telnet自动登陆执行模块而言,内部模块可以指与此模块在同一个进程内(通过函数调用或线程间通讯),外部模块可以指所有的第三方,通过通讯协议与此模块交互。例如,SOAP协议,SMTP协议。
此外,在将封装后的消息发送至与其对应的telnet服务器执行之后,考虑到消息的发送方无法识别telnet服务器返回的与telnet命令码对应的消息,因此本实施例中的方法还可以包括:接收并解析各个telnet服务器返回的与telnet命令码对应的消息,并将解析后的消息发送给telnet命令码的发送方。通过这种方式,能够使telnet命令码的发送方识别telnet服务器返回的消息,简单易行。
在上述配置文件中包括登陆后需要首先执行的命令的情况下,在登陆各个telnet服务器之后,还可以包括:执行首先执行的命令;在该命令执行成功后,将登陆成功的链路加入telnet链路池。通过这种方式,在遇到某些telnet服务器在登陆后需要进行鉴权操作,例如,需要用户输入其专有账号的用户名和密码,或者需要用户输入CD-Key的情况下,能够提高自动连接的成功率,提高了本方案的灵活性。
在将登陆成功的链路加入telnet链路池之后,当再次接收到通过各种通信协议发送的携带telnet命令码的请求消息时,可以直接从telnet链路池中查找与请求消息对应的telnet服务器的空闲链路。通过这种方式,能够提高客户端与telnet服务器之间交互的速度。
为了保证客户端与telnet服务器之间交互的实时性,在登陆各个telnet服务器之后,还可以周期性地检测各个telnet服务器的配置链路连接状态;重连系统自动断开的链路和/或重连异常断开的链路。通过这种方式,能够保持连接的持续性,从而提高了客户端与telnet服务器之间交互的速度
对应于上述方法,本实施例还提供了一种与telnet服务器的交互装置,图2是根据本发明实施例的与telnet服务器的交互装置的结构框图,如图2所示,该装置包括:建立连接模块22、格式转换模块24以及命令执行模块26,下面对各个模块进行详细描述。
建立连接模块22,用于读取配置文件,根据配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆各个telnet服务器,其中,配置文件包括一个或多个telnet服务器地址、端口号以及认证信息(例如,用户名和密码);格式转换模块24,用于接收通过通信协议发送的携带telnet命令码的消息,并封装该消息;命令执行模块26,与建立连接模块22和格式转换模块24相连,用于使用与该消息对应的telnet服务器的空闲链路将格式转换模块24封装后的该消息发送至与其对应的telnet服务器执行。
本实施例通过上述装置,通过建立连接模块22读取配置文件中的telnet服务器地址、端口号以及认证信息从而自动登陆到各个telnet服务器上,格式转换模块24对接收到的通过通信协议发送的携带telnet命令码的消息经过封装后,由命令执行模块26发送至telnet服务器执行的方式,使得接收到的通过各种通信协议发送的携带telnet命令码的消息都能够在telnet服务器上自动执行,解决了相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,提高了客户端与telnet服务器之间交互的实时性。
图3是根据本发明实施例的与telnet服务器的优选交互装置的结构框图,如图3所示,该装置还可以包括:
配置模块32,与建立连接模块22相连,用于配置至少以下之一信息:登陆后的telnet服务器的系统提示符;登陆后需要首先执行的命令;执行特定可执行程序后进入的命令提示符;每个连接没有消息交互时端口连接主动断开的时间。
需要说明的是,本发明实施例中对来自外围模块的命令消息的封装以及对telnet服务器返回的消息的解析都是为了进行格式转换,以使得不同通信协议所传输的数据信息可以识别。
下面结合优选实施例进行说明,下文中的优选实施例结合了上述实施例及优选实施方式。
实施例一
为了减少成本,本实施例提供了一种自动登陆TELNET服务器并运行程序的方法及系统,利用原有的telnet服务器及相应的运行程序,使得客户端能够自动登陆telnet服务器并运行程序,以解决很多通用的需求。
在实施过程中,本实施例可以提供的自动登陆TELNET服务器并运行程序的方法,包括以下步骤:
步骤1,读取配置文件,包括telnet服务器IP地址、端口号、登陆用户名、密码。其中,可以包括但不限于如下至少之一功能:支持配置多个telnet服务端;每个服务端支持配置多个连接;支持配置登陆后telnet服务器系统提示符;支持配置登陆后要首先执行的命令,如果不配置,表示登陆后不需要立即执行命令;支持配置登陆执行某个可执行程序后进入的命令提示符;支持配置每个连接设定时间内没有消息交互时,端口连接主动断开。
步骤2,根据配置文件信息,与各个telnet服务器建立对应个数的连接并根据用户名密码自动登陆。其中,可以包括至少以下之一步骤 与telnet服务器建立tcp连接;与telnet服务器协商NVT还是ANSI方式;登陆后根据配置决定是否执行登陆后第一条命令;自动维护各个链路的状态,链路正常断开能自动重连登陆,发现链路异常可自动断开并重连登陆。
步 骤3,接收消息发起方发送的需要到服务器上执行的telnet命令码,封装消息并发送到对应的telnet服务端。在实施过程中,消息发起方可以为其他外围模块,通过各种通讯协议发送需要到telnet服务器执行的telnet命令码;也可以为嵌入此自动登陆执行模块的内部模块,通过公用函数或线程间消息等方式给消息封装发送模块发送telnet命令码。还可以包括以下功能:与消息发起方的接口包括telnet服务器地址、端口号,以便此自动登陆执行模块知道发往哪个服务器。优选地,对于一个服务器多个连接,此自动登陆执行模块找到一个空闲连接发送消息。其中,对于每一个与服务器的会话,当会话完整结束时,置此连接为空闲连接。
步骤4,接收telnet服务器各连接命令返回消息,解析消息,并返回消息结果给对应的发送模块。
本实施例还提供了一种自动登陆TELNET服务器并运行程序的系统。图4是本发明实施例一的自动登陆TELNET服务器并运行程序的系统结构示意图,如图4所示,该系统包括:配置模块、telnet通讯模块、请求消息发起模块、请求消息接收模块、telnet消息封装模块、telnet消息解码模块。其中,配置模块和telnet通讯模块用于完成telnet连接的建立和维护,telnet通讯模块、请求消息发起模块、请求消息接收模块、telnet消息封装模块和telnet消息解码模块用于完成到telnet服务器上执行具体命令并获得执行结果。下面对各模块进行简单说明。
配置模块,用于配置telnet服务器各配置信息,可以为配置文件,也可以为数据库配置;
telnet通讯模块,包括自动登陆维护模块及数据消息收发模块,用于按配置自动登陆各telnet服务器,并自动维护各登陆连接,并负责telnet通讯中的数据消息收发,其中,自动登陆维护模块中还包括定时器模块,用于定时检测维护telnet链路;
请求消息发起模块,用于主动发起到telnet服务器上执行命令码的请求;
请求消息接收模块,接收请求消息发起模块的请求;
telnet消息封装模块,用于将消息发起模块的消息封装并通过通讯模块发给telnet服务器;
telnet消息解码模块,用于接收通讯模块发来的telnet服务端命令执行返回码并解析,将解析结果返回给消息发起模块。
在实施过程中,请求消息发起模块及消息接收模块之间的交互既可通过各种通讯协议实现,也可通过内部函数及线程间通讯实现。
可见,本实施例通过配置文件实现与多个服务器自动建立多条连接,灵活性好;自动检测维护各个连接,健壮性高;消息发起模块独立,可以是内部封装,也可以是通过各种通讯协议交互,实用性广。此外,可以对每个连接状态的控制,保证了每个会话完整(一个完整会话可能包括多次命令交互)结束才进行下一个会话,保证了自动运行时每个连接上不会发生并发会话导致的交互紊乱。
实施例二
图5是本发明实施例二的telnet通讯模块自动登陆及链路维护的流程图,如图5所示,本发明具体实施方式
telnet通讯模块自动登陆及链路维护,包括以下步骤:
步骤S501,读取配置信息,本实施方式配置采用文件方式,可以配置多个telnet服务器,每个服务器多个连接;
步骤S502,根据配置分别与各telnet服务器建立TCP连接;
步骤S503,与telnet连接建立后,向对应连接发送登陆消息;
步骤S504,判断向telnet服务器登陆是否成功;
步骤S505,向telnet服务器登陆失败,断开链路,此流程结束;
步骤S506,向telnet服务器登陆成功,判断是否有需要登陆后执行的初始命令,没有转步骤S510 ;
步骤S507,执行登陆后初始命令;
步骤S508,判断初始命令执行是否成功;
步骤S509,执行失败,断开链路,此流程结束;
步骤S510,执行成功,将链路加入正常连接链路池,此流程结束;
步骤S511,启动定时器,定时器间隔可配;
步骤S512,检测各telnet配置连接状态,如果状态为连接正常,则此流程结束,如果状态为未连接,转步骤S502,如果状态为其他异常,转步骤S513 ;
步骤S513,断开异常链路后,转步骤S502。
其中,步骤S511-S513,实现链路定时检测维护功能。
实施例三
图6是本发明实施例三的接收telnet发送请求并到telnet服务器执行请求的流程图,如图6所示,本发明具体实施方式
接收telnet发送请求并到telnet服务器执行请求,包括以下步骤:
步骤S601,消息发起模块发送telnet消息请求;
步骤S602,消息接收模块接收请求;
步骤S603,查找telnet连接池中是否有对应telnet服务器的空闲连接;
步骤S604,判断查找空闲连接是否成功,失败转步骤S605,成功转步骤S606 ;
步骤S605,向消息发送端发送失败响应消息,此流程结束;
步骤S606,查找成功,将该连接状态置为忙,消息封装模块封装消息,通过通讯模块的该连接发送消息给telnet服务器;
步骤S607,判断消息发送是否成功,发送失败,转步骤S605 ;
步骤S608,消息发送成功,等待接收telnet返回消息;
步骤S609,接收消息超时,将超时失败消息返回给消息发起方;或正常接收消息,将消息解码并将结果返回给消息发起方,置该连接为空闲连接。
综上所述,本发明实施例可以将接收到的采用不同通信协议格式的telnet命令消息转换为telnet服务器可以识别的消息发送给它,提高了网络的兼容性和系统的实时性。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种与远程登陆telnet服务器的交互方法,其特征在于,包括: 读取配置文件,根据所述配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆所述各个telnet服务器,其中,所述配置文件包括一个或多个telnet服务器地址、端口号以及认证信息; 接收通过通信协议发送的携带telnet命令码的消息,并封装所述消息; 使用与所述消息对应的telnet服务器的空闲链路将封装后的所述消息发送至与其对应的telnet服务器执行。
2.根据权利要求1所述的方法,其特征在于,读取所述配置文件之前,还包括配置至少以下之一信息: 登陆后的telnet服务器的系统提示符; 登陆后需要首先执行的命令; 执行特定可执行程序后进入的命令提示符; 每个连接没有消息交互时端口连接主动断开的时间。
3.根据权利要求1所述的方法,其特征在于,登陆所述各个telnet服务器之前,还包括: 与所述各个telnet服务器协商所采用的登陆方式,其中,所述登陆方式包括网络虚拟终端NVT方式和ANSI方式。
4.根据权利要求1所述的方法,其特征在于,接收通过各种通信协议发送的携带telnet命令码的消息包括: 接收来自外围模块通过各种通信协议发送的携带telnet命令码的消息;和/或 接收内部模块通过公用函数或线程间消息发送的携带telnet命令码的消息。
5.根据权利要求1所述的方法,其特征在于,将封装后的所述消息发送至与其对应的telnet服务器执行之后,还包括: 接收并解析所述各个telnet服务器返回的与所述telnet命令码对应的消息,并将解析后的消息发送给所述telnet命令码的发送方。
6.根据权利要求1所述的方法,其特征在于,在所述配置文件包括登陆后需要首先执行的命令的情况下,登陆所述各个telnet服务器之后,还包括: 执行所述首先执行的命令; 在该命令执行成功后,将 登陆成功的链路加入telnet链路池。
7.根据权利要求6所述的方法,其特征在于,接收通过各种通信协议发送的携带telnet命令码的消息包括: 接收通过各种通信协议发送的携带telnet命令码的请求消息; 从所述telnet链路池中查找与所述请求消息对应的telnet服务器的空闲链路。
8.根据权利要求1所述的方法,其特征在于,登陆所述各个telnet服务器之后,还包括: 周期性地检测所述各个telnet服务器的配置链路连接状态; 重连系统自动断开的链路,和/或重连异常断开的链路。
9.一种与远程登陆telnet服务器的交互装置,其特征在于,包括: 建立连接模块,用于读取配置文件,根据所述配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆所述各个telnet服务器,其中,所述配置文件包括一个或多个telnet服务器地址、端口号以及认证信息; 格式转换模块,用于接收通过通信协议发送的携带telnet命令码的消息,并封装所述消息; 命令执行模块,用于使用与所述消息对应的telnet服务器的空闲链路将封装后的所述消息发送至与其对应的telnet服务器执行。
10.根据权利要求9所述的装置,其特征在于,还包括: 配置模块,用于配置至少以下之一信息:登陆后的telnet服务器的系统提示符;登陆后需要首先执行的命令;执行特定可执行程序后进入的命令提示符;每个连接没有消息交互时端口连接主动断开的时间。
全文摘要
本发明公开了一种与telnet服务器的交互方法及装置。其中,该方法包括读取配置文件,根据配置文件中的信息与各个telnet服务器建立对应个数的连接并登陆各个telnet服务器,其中,上述配置文件包括一个或多个telnet服务器地址、端口号以及认证信息;接收通过通信协议发送的携带telnet命令码的消息,并封装该消息;使用与上述消息对应的telnet服务器的空闲链路将封装后的消息发送至与其对应的telnet服务器执行。本发明解决了相关技术中增加外围客户端后无法与telnet服务器进行实时交互的问题,提高了客户端与telnet服务器之间交互的实时性。
文档编号H04L29/06GK103139187SQ201110395950
公开日2013年6月5日 申请日期2011年12月2日 优先权日2011年12月2日
发明者刘美霞, 魏霄鹏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1