Telnet服务器的研究与实现
摘要:Telnet作为一种远程登录的手段,有着比较广泛的应用,本次设计的Telnet服务器功能比较简单、规模也较小,只实现了多线程登陆和执行简单指令功能。
关键词:Telnet;服务器;研究
中图分类号:TP393.09 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
当服务器上运行Telnet 服务器时,用户可以在远程计算机使用Telnet客户端从连接服务器。当Telnet客户连接到Telnet服务器时,需要验证用户信息,正确后才能登录该服务器。登录之后,用户将接收到命令提示符,然后用户就可以象在本地打开的命令提示符窗口中一样使用。
1 Telnet服务器的基本要求
(1)使用基本的套接口函数进行开发,即使用socket()、bind()、listen()、accept()等
(2)不使用图形界面,只要能用文本显示相关信息即可,另外,需要把这些相关信息写入到一日志文件中(文件名为:学号.txt)
(3)客户端通过Telnet连接后,服务器返回系统的一些信息(自己定义,至少应该包括程序作者的学号),之后显示提示符"login:"提示用户输入用户名进行登录
(4)要求对用户名和密码进行验证。用户名和密码均为学号的后3位。如果用户名和密码错误则返回invalid user or passwd并提示重新输入
(5)服务器端至少支持如下命令(以下命令可带参数,也可不带,各人根据自己的能力来完成)
author:返回程序作者的相关信息
date:返回服务器的当前日期,在help中做出说明
time:返回服务器的当前时间,在help中做出说明
help:返回服务器所支持的命令
bye:与服务器断开连接
若输入了不支持的命令,则应回显相应的提示,如提示用户键入help来查看相应的命令
2 概要设计
(1)等待连接模块。本模块的主要功能是对TCP协议进行三次握手并等待客户端的连接,每有一个客户端连接则为它创建一个线程,以此来实现多线程工作。
(2)登陆模块。用于输出欢迎词和服务器的相关信息,接收客户端输入的用户名和密码,将它们与服务器设置的用户名和密码进行比较。如果错误则继续提示客户端继续输入登陆信息。否则进入相关命令的操作。
(3)命令模块。对客户端输入的命令进行相应的操作。
(4)接收字符模块。主要是接收客户端的信息,并进行收集存放到一个string类型中,方便服务器端进行相关的操作等。
模块间的调用如下图所示
3 详细设计说明
(1)等待连接模块。本模块的主要功能是对TCP协议进行三次握手并等待客户端的连接,每有一个客户端连接则为它创建一个线程,以此来实现多线程工作。主要流程图如下:
(2)登陆模块。用于输出欢迎词和服务器的相关信息,接收客户端输入的用户名和密码,将它们与服务器设置的用户名和密码进行比较。如果错误则继续提示客户端继续输入登陆信息。否则进入进入相关命令的操作。主要流程图如下:
(3)命令模块。对客户端输入的命令进行相应的操作。
(4)接收字符模块。主要是接收客户端的信息,并进行收集存放到一个string类型中,方便服务器端进行相关的操作等。主要流程图如下:
4 结束语
Telnet服务器的实现对于计算机网络初学者来说,加深了对TCP/IP协议的理解。本次设计的Telnet服务器只是实现了简单的指令功能,功能还不够强大,但是对多线程操作及网络编程有了深刻的认识,为对Telnet服务器的更深一步研究打下了良好的基础。
参考文献:
[1]卢爱卿,张会勇,赵征. Telnet协议的实现原理及应用[J].计算机工程,2002.
[2]马坤,杨波. Telnet协议在网管系统中的应用[J].信息技术与信息化,2006.
[3]王雷.详解telnet[J].黑河科技.2003.
[4]李华生,李亚鹃,王皞. 浅析Telnet协议及其运用[J].江西电力,2011.
评论