《课程设计—远程终端管理系统》由会员分享,可在线阅读,更多相关《课程设计—远程终端管理系统(17页珍藏版)》请在金锄头文库上搜索。
1、 第 7 章远程终端管理系统需求描述 远程终端管理系统实现了一个mini telnet的功能。该系 统采用C/S架构,需要分别编写服务端与客户端程序。 其中,服务端采用I/O复用机制,实现多客户端连接。 通过读取配置文件,服务端将初始化服务端的设置和 建立用户信息。在客户认证登陆后,服务端动态维护 实时用户的会话信息,接收客户端的命令,将执行结 果返回给客户端并显示。项目实施和课程安排课程进度描述课时第一次课项目讲解,项目准备阶段2第二次课任务讲解,第一次集中编码2第三次课任务讲解,第二次集中编码6第四次课任务讲解,第三次集中编码4第五次课任务讲解,第四次集中编码2第六次课任务讲解,第五次集中
2、编码2第七次课任务讲解,第六次集中编码2第八次课任务讲解,第七次集中编码2第九次课任务讲解,第八次集中编码2第十次课总结和答辩8效果显示(1) 启动服务端 查看服务器效果显示(2) 启动客户端 输入命令返回结果效果显示(3) 发送SIGUSR1信号之前,查看服务器进程 发送SIGUSR1 发送SIGUSR1信号之后,查看服务器进程效果显示(4) 发送SIGUSR2信号之前,查看服务器进程 发送SIGUSR2 发送SIGUSR2信号之后,查看服务器进程项目分组 学员独立完成1阶段任务 跟踪调试 加入4级日志函数 log_info(format.); log_warning(format.); l
3、og_error(format.); log_fatal_error(format.); 调试跟踪函数 debug(format.); trace();2阶段任务Sock编程 基于tcp协议的客户端服务端通讯。 服务端使用select I/O复用机制,支持多客户端连接。 客户端从终端接受命令,把命令发送给服务端。服务端执行命令, 并把执行结果返回给客户端。例如:在客户端终端键入“ls”,服 务端将执行结果显示在客户端。 服务端使用链表记录当前客户端的会话连接,并动态维护会话。基 本信息:客户端的ip地址、端口、服务端使用sock描述符、客户端 连接时间、收发数据包的个数、数据包出现错误的个数、
4、接收客户 端的命令条数。3阶段任务守护进程 守护进程中重定向标准输入、输出、错误输出的文件描述符到指定 文件。 守护进程负责服务进程的启动与关闭。 当收到停止服务信号时,守护进程杀掉服务进程,并且以后不再重新启 动。 当收到开启服务信号时,守护进程启动服务进程。如果已经启动,则重 新启动。 故增加两个信号的处理:开启服务器和停止服务器,信号值分别为 SIGUSR1.SIGUSR2。 守护进程采用定时器方式监控服务进程。定时查看服务进程( /proc/pid/status)的状态,并作出相应的处理。另外,如果服务异 常退出,则重新启动。4阶段任务 配置文件 服务端的配置从配置文件中获取,不再以启
5、动参数的形式传入。 配置内容:服务端的使用的ip地址和端口最大的客户连接数用户名和用户密码 日志文件保存的路径日志的输出级别5阶段任务用户认证 服务端和用户端增加用户密码登陆机制 在服务端配置文件中对客户端用户密码进行配置,服务启动后从配 置文件中读取用户信息形成数据表。 在建立连接时,客户端把接受的用户名密码发送至服务端,服务验 证后返回认证结果给客户端。认证正确开始接受命令,认证错误重 新认证。6阶段任务 心跳机制 客户端与服务端之间使用心跳机制。心跳机制:客户端定时向服务 端发送一个数据包(心跳包),证明自己活着。服务端超过一定的 时间没有收到服务端的心跳包则说明客户端出现问题,做出相应的 处理(一般处理记录状况,并且断开连接)。 协议格式。 TLV 简单格式。 1. 链表, 保存client信息, 包含每个client的定时器。 select超时时间, 更新一下链表里面的定时器。 accept之后, 更新。 2. 线程, 线程里面去维护一个定时器数组。7阶段任务 协议 根据通信数据的类型,重新设计应用协议。将上述客户端与服务端 之间的通信数据,以协议的形式进行封装。8阶段任务服务端处理机制 改用多进程处理客户端的命令。 改用多线程处理客户端的命令。 毕业答辩 使用统一答辩模板 阶段项目总结