




免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕 业业 设设 计计 论论 文文 实验室计算机实验室计算机 IPIP 地址自动设置程序地址自动设置程序 服务器端的设计与实现服务器端的设计与实现 论文作者姓名 论文作者姓名 申请学位专业 申请学位专业 申请学位类别 申请学位类别 指指导导教教师师姓姓名名 职职称称 论文提交日期 论文提交日期 实验室计算机实验室计算机 IPIP 地址自动设置程序地址自动设置程序 服务器端的设计与实现服务器端的设计与实现 摘摘 要要 IP 地址的分配和管理是实验室管理员比较重视的一个问题 而大部分管理 员都采用的是 DHCP 技术来实现 虽然 DHCP 技术可以为用户接入网络提供方便 但还存在一些弊端 例如 IP 地址具有随机性 用户的 IP 地址是随机分配的 具有不确定性等等 本系统的主要功能就是实现对实验室计算机 IP 地址的静态 分配 从而解决 DHCP 技术的一些缺陷 主要实现方法为 对有请求的客户端的 网卡地址和分配给其的 IP 地址进行记录 通过网卡地址来标识某一具体主机 当其再有请求到达时 分配给其已经记录的 IP 地址 以实现分配给客户端固定 IP 地址的功能 若要手工实现对客户端 IP 地址的静态分配 可直接在数据库 中根据网卡地址修改对应的 IP 地址即可 IP 地址的设置由客户端实现 程序 的开发工具为 VC 6 0 连接数据库方式为 ADO 方式 为了优化系统性能和使 客户端的请求不阻塞 采用了多线程技术 关键词关键词 ADO 多线程 网络广播 网络编程 the Automatic IP Address Configuration Software for Lab the Design and Implementation of the Server side program Abstract More and more laboratory managers care about the IP address allocation and management problem Most administrators are using DHCP to resolve it Although DHCP technology can provide users convenient access to network but there are some drawbacks such as the random IP address This causes the user s IP address is distributed randomly with uncertainty The main function of the system is to achieve the static IP address allocation of the laboratory computers It remedies the DHCP technology s drawbacks The system uses some network technology It records the MAC address and the allocated IP address of the client who send the request packet to server by LAN Through identifying a host by the specific MAC address when the same request arrived the same IP addresses shall be allocated again which achieves the function that the client shall be allocated to the fixed IP addresses If users need to manually allocate the IP address they can modify the IP addresses that correspond to MAC address IP addresses are set by the client system Program development tools is Visual C 6 0 access the database with ADO to optimize system performance To avoid the block of client requests multithread technology is used Key words ADO multithread Network Broadcast Network Programming 目目 录录 论文总页数 20 页 1引言 1 1 1课题背景 1 1 2主要采用技术 1 1 2 1 ADO 1 1 2 2 多线程 1 1 2 1 网络广播 2 1 3系统开发环境 2 1 3 1 系统软件环境 2 1 3 2 工具简介 2 2系统概述 3 3系统模块设计与实现 4 3 1总体设计 4 3 1 1 系统结构设计 4 3 1 2 通信协议 6 3 1 3 数据库设计 6 3 2编码实现 6 3 2 1 配置模块 6 3 2 2 接收请求模块 9 3 2 3 处理请求模块 11 3 2 4 发送应答模块 14 4软件测试 16 结 论 18 参考文献 18 致 谢 19 声 明 20 第 1 页 共 20 页 1 1 引言引言 1 11 1 课题背景课题背景 目前 对学校的实验室来说 IP 地址的分配和管理是管理员比较重视的一 个问题 而大部分管理员都采用的是 DHCP 技术来实现 DHCP 技术是通过网络 内一台服务器提供相应的网络配置服务来实现的 可以为网络终端设备提供临 时的 IP 地址 默认网关 DNS 服务器等网络配置 虽然 DHCP 技术可以为用户 接入网络提供方便 但还存在一些弊端 例如 IP 地址具有随机性 用户的 IP 地址是随机分配的 具有不确定性 访问权限会发生变化 如果用户的访 问权限是基于 IP 地址划分的 则访问权限随 IP 地址不同而变化 不可被访问 通过 DHCP 获得的 IP 地址具有不确定性 用户被访问难度较大 本系统对访问 服务器的客户端网卡地址和分配其的 IP 地址进行记录 通过网卡地址来标识网 内某一具体主机 并分配其固定的 IP 地址 从而弥补以上的一些不足之处 IP 地址的设置由客户端实现 1 21 2 主要采用技术主要采用技术 1 2 11 2 1 ADOADO ADO ActiveX Data Objects ActiveX 数据对象 是 Microsoft 为强大的 数据访问接口 OLE DB 对象链接和嵌入数据库 而设计的 是一个便于使用的 应用层的编程接口 使用 ADO 编写的应用程序可以通过 OLE DB 提供者访问和 操作数据库服务器中的数据 ADO 不仅可以访问关系型数据库 还可以访问非 关系型数据库 同时由于 OLE DB 是基于 COM 接口的技术 使用这种技术可以直 接对数据库的驱动程序进行访问 从而大大提供了访问速度 ADO 最主要的优 点是易于使用 速度快 内存支出少和磁盘冗余小 ADO 在关键的应用方案中 使用最少的网络流量 并且在前端和数据源之间使用最少的层数 所有这些都 是为了提供轻量 高性能的接口 1 2 21 2 2 多线程多线程 多线程是这样一种机制 它允许在程序中并发执行多个指令流 每个指令 流都称为一个线程 彼此间互相独立 线程又称为轻量级进程 它和进程一样 拥有独立的执行控制 由操作系统负责调度 区别在于线程没有独立的存储空 间 而是和所属进程中的其它线程共享一个存储空间 这使得线程间的通信远 较进程简单 多个线程的执行是并发的 也就是在逻辑上 同时 而不管是否是物理上 的 同时 如果系统只有一个 CPU 那么真正的 同时 是不可能的 但是由 于 CPU 的速度非常快 用户感觉不到其中的区别 因此我们也不用关心它 只 第 2 页 共 20 页 需要设想各个线程是同时执行即可 多线程和传统的单线程在程序设计上最大的区别在于 由于各个线程的控 制流彼此独立 使得各个线程之间的代码是乱序执行的 1 2 31 2 3 网络广播网络广播 网络广播是指一个节点同时向相同域中的其它所有节点传输数据包的过程 组播是一种特殊的广播 其中一组请求收听的选定用户将收到广播 广播传输 通常在局域网 如以太网 中进行 但有时也发生在虚拟局域网 VLAN 中 IPv6 支持单播 Unicast 组播 Multicast 以及任意播 Anycast 三种类 型 IPv6 中没有关于广播 Broadcast 的具体划分 而是作为组播的一个典 型 网络广播中涉及以下重要概念 广播域 Broadcast Domain 这是一个限定区域 其中的所有设备都可 以共享信息 换句话说 与网络相连 且负责接收广播的所有设备都是同一广 播域的一部分 在一个共享以太网中 工作站通过共享媒体将帧广播到其它所 有节点 其它节点收听广播 只接收寻址到它们的帧 因此 共享以太网中的 所有节点都属于同一广播域 此外通过虚拟局域网技术可以创建一个虚拟广播 域 广播地址 Broadcast Address 这是一个特殊地址 当数据包可以寻址 到该地址时 可以帮助所有设备打开和处理信息 例如 MAC 地址 格式为 1xFFFFFFFF 是一种广播地址 IP 地址 255 255 255 255 是通用广播地址 任 何设备都将打开寻址到广播地址的信息 并将它们传送到下一个工作站 广播风暴 Broadcast Storm 当主机系统响应一个在网上不断循环的广 播数据包或者试图响应一个没有应答的系统时就会发生广播风暴 随着网络数 据包数量的增加 广播风暴可能会引起网络拥塞问题 为防止广播风暴的发生 需要细心配置网络以阻止非法广播信息的进入 1 31 3 系统开发环境系统开发环境 1 3 11 3 1 系统软件环境系统软件环境 本系统采用的软件工具有 开发工具 VC 6 0 数据库 Microsoft Office Access 2003 1 3 21 3 2 工具简介工具简介 Visual C 6 0 是微软公司重点推出的核心产品之一 它在原 MFC 类库基 础上进行了完善和扩充 功能更强 性能更优 使用更方便 MFC 是指 第 3 页 共 20 页 Microsoft Foundation Class 它封装了 Windows API 的数据结构 函数及宏 以面向对象的类的形式供程序开发者编写各种类型的程序 包括 Internet 数 据库和多媒体方面的程序 Visual C 6 0 类库在以下方面比前期版本功能更强 1 Visual C 6 0 支持动态 HTML 通过 App Wizard 可以轻松的编写基于 Web 浏览器的应用程序 新的 CHtmlView 类封装了 Internet Exploer 浏览器 的功能 这样可以方便的编写浏览器风格的应用程序 2 Visual C 6 0 支持 Windows DNA 分布式 Internet 应用程序 架构 DNA 技术完全支持 Microsoft Back Office 服务器方便的控件 包括微软的 SQL Server Transaction Server 和 Message Server 3 Visual C 6 0 支持更多类型的 ATL 包括 DLL 库 EXE 文件 Web 控件 数据库和 Microsoft Back Office 应用程序 4 Visual C 6 0 访问数据库的能力更强 它完全支持最新的微软数据库 标准 OLE DB 通过 COLEDBRecordView 类可以方便的浏览 OLE DB 数据库 2 2 系统需求概述系统需求概述 本系统的主要目标是实现实验室计算机 IP 地址的自动分配和设置 将客户 端的 IP 地址设置为固定 IP 地址 服务器可以安装在局域网内任意一台计算机 上 实现方式主要有两种 一 由服务器自动为客户端分配固定的 IP 地址 当 客户端第一次运行的时候 服务器自动为客户端分配一个 IP 地址 同时将客户 端的网卡地址和分配给其的 IP 地址记录在数据库里 当客户端重新运行再次请 求的时候 服务器从数据库中提取记录的 IP 地址 分配给客户端 二 由管理 员手动为客户端分配固定 IP 地址 管理员需要知道客户端的网卡地址 将客户 端的网卡与对应匹配的 IP 地址直接录入 Access 数据库 当服务器收到客户端 请求的时候 服务器从数据库中根据客户端的网卡地址查找对应 IP 地址 将此 IP 地址分配给客户端 由于某种原因 学生做实验时可能需要重新配置 IP 地 址从而造成 IP 地址混乱的现象 通过重新启动客户端 可将各客户端 IP 地址 还原 计算机 IP 地址固定可以方便根据 IP 地址设计计算机的权限和进行访问 系统具有一定的灵活性 如果客户端分配到的 IP 地址与其它计算机重合 可能 是由于手工配置静态 IP 客户端会发送二次请求 服务器会分配客户端一个 临时的 IP 地址但并不记录入数据库 在一定程度上保证了客户端 IP 地址的可 用性 当客户端重新启动发出请求时 服务器为客户端分配数据库中记录的 IP 地址 第 4 页 共 20 页 3 3 系统模块设计与实现系统模块设计与实现 3 13 1 总体设计总体设计 3 1 13 1 1 系统结构设计系统结构设计 系统的主要功能需求为 配置分配的 IP 地址范围 接收客户端的请求 处 理请求为客户端分配 IP 地址 将应答信息发送给客户端 根据系统需求可以将系统划分为以下主要模块 模块名称 配置系统信息 功能描述 配置服务器为客户端分配的 IP 地址范围 服务器保留的 IP 地 址 网关 子网掩码等信息 实现方式 服务器并不是每次启动都需要配置 IP 信息 配置模块在单独的 进程中实现 有对话框界面进行人机交互 将配置信息保存到系统盘的 Windows 目录下的一个配置文件中 主程序运行时从配置文件中读取配置信息 模块名称 接收请求 功能描述 接收网络发送来的请求包 验证请求包的正确性和完整性 并 将请求信息保存 实现方式 功能在单独的线程中实现 虽然客户端与服务器物理上在一个 局域网内 但并不能保证逻辑上在一个网段内 所以客户端不知道服务器所在 为了使客户端发出的请求服务器能够正确接收 客户端采用数据链路层广播的 方式发送请求 收到客户端请求后 通过验证包头信息判断请求包的正确性 将请求信息写入请求队列 没有请求到达线程在接收请求处阻塞 网络请求的 接收采用 Windows 套接字编程实现 互斥资源的访问采用信号量机制 模块名称 处理请求 功能描述 从请求队列中读取请求信息 根据请求信息为客户端分配 IP 地 址 将应答信息写入发送队列 实现方式 功能在单独的线程中实现 从配置文件中读取配置信息 判断管 理员是否重新配置过 如果重新配置过则清空数据库记录 从请求队列中读取 请求信息 判断是一次请求还是二次请求 一次请求 从数据库中根据网卡地 址查找分配给其的 IP 地址 找到则把分配的 IP 地址写入发送队列 找不到则 将最小的 IP 地址分配给其并写入数据库和发送队列 最小 IP 地址向上递增 二次请求 将最大 IP 地址分配给其但不写入数据库 写入发送队列 最大 IP 地址递减 互斥资源的访问采用信号量机制 模块名称 发送应答 功能描述 从发送队列中读取应答信息 将子网掩码 网关等信息封装为 第 5 页 共 20 页 应答包 发送给客户端 实现方式 功能在单独的线程中实现 从配置文件中读取分配的子网掩码和 网关 从发送队列中读取客户端的 IP 地址和分配给其的 IP 地址 因为不确定 客户端和服务器是否在同一网段 所以还是采用广播的方式发送应答信息包 将子网掩码和网关封装进应答包以广播的形式发送出去 网络应答的发送采用 Windows 套接字编程实现 互斥资源的访问采用信号量机制 系统的结构如图 图 1 系统模块结构 系统主程序 系统配置接收请求处理请求发送应答 配 置 IP 地 址 范 围 配 置 网 关 配 置 子 网 掩 码 配 置 保 留 IP 地 址 接 受 请 求 信 息 写 入 请 求 队 列 验 证 请 求 信 息 读 取 请 求 信 息 处 理 请 求 信 息 查 询 IP 地 址 发 送 应 答 信 息 封 装 应 答 包 写 入 应 答 队 列 分 配 新 的 IP 地 址 读 取 应 答 信 息 第 6 页 共 20 页 3 1 23 1 2 通信协议通信协议 客户端和服务器都不知道彼此的网络配置信息 网络通信采用数据链路层 广播的形式 请求包和应答包均可到达目的地 网络通信协议定义如下 一次请求包 包头 reqip 包体 网卡地址 计算机名 二次请求包 包头 REQIP 包体 网卡地址 计算机名 应答包 包头 repip 包体 客户端原 IP 地址 分配给客户端的 IP 地址 子网 掩码 网关 3 1 33 1 3 数据库设计数据库设计 系统数据库只记录客户端的网卡地址 分配给客户端的 IP 地址和客户端的 计算机名 数据库设计如下 数据库名称 IpAddr 表名 IPaddress 表 1 数据库表结构 字段名称数据类型说明 mac文本网卡地址 ip文本ip 地址 pcname文本计算机名 3 23 2 编码实现编码实现 3 2 13 2 1 配置模块配置模块 配置模块的主要功能是配置为客户端分配的 IP 地址范围 保留的 IP 地址 子网掩码和网关 模块流程图如下 第 7 页 共 20 页 图 2 配置模块流程图 主要实现代码为 得到用户输入信息 m maxIp GetWindowText maxIp m minIp GetWindowText minIp m netmask GetWindowText netMask m netgate GetWindowText netGate 判定用户输入的合法性 if maxIp IsEmpty minIp IsEmpty MessageBox 输入的 ip 地址范围不能为空 return if netMask IsEmpty netGate IsEmpty 开始 用户输入配置 信息 存储用户配 置信息 判断用户输 入的合法性 结束 提醒用户输入 不合法 T F 第 8 页 共 20 页 MessageBox 子网掩码或网关不能为空 return if cmpIPaddr char LPCTSTR minIp char LPCTSTR maxIp MessageBox 地址段范围不合法 return 将配置信息写入配置文件 WritePrivateProfileString FLAG flag true IPaddrSer ini 写修改标 志位 WritePrivateProfileString MAXIP maxip maxIp IPaddrSer ini 写最 大 IP 地址 WritePrivateProfileString MINIP minip minIp IPaddrSer ini 写最小 IP 地址 WritePrivateProfileString DISABLEIP NULL NULL IPaddrSer ini 清空 保留 IP 地址 重写保留 IP 地址 maxDisIpNo m disip GetCount while itemAddString macaddr 控件上显示请求信息 if strcmp temp REQIP 0 二次请求包 请求信息写入结点 memcpy strcpy addr mac 0 strcpy addr pcname pak body strcpy addr ip inet ntoa saClient sin addr CString macaddr warning receive a request the Macaddress is CString s pak macaddr macaddr macaddr s Log WriteLog char LPCTSTR macaddr if Write false 将请求信息写入队列 第 11 页 共 20 页 MessageBox NULL write to queue fail Error MB OK Log WriteLog write to queue fail recptr AddString macaddr 控件上显示请求信息 3 2 33 2 3 处理请求模块处理请求模块 处理模块请求主要功能是为客户端分配对应的 IP 地址 通过查询数据库为 客户端分配固定的 IP 地址 模块流程图如下 图 4 处理请求模块流程图 开始 判断队列中是否有 请求 读出请求信息 判断请求类别 分配最大IP地址 最大IP递减 查询该客户端的记录 是否存在该客 户端的记录 分配最小IP 最小 IP递增 分配信息记录数 据库 应答信息写入发送 队列 查询分配给该客户 端的IP地址 应答信息写入发送 队列 应答信息写入发送 队列 T F 二次请求 一次请求 T F 第 12 页 共 20 页 主要实现代码如下 GetPrivateProfileString FLAG flag 000 flag sizeof flag IPaddrSer ini 读取修改标志位 if strcmp flag true 0 判断管理员是否重新配置过 if DeleteAll 清空数据库记录 MessageBox NULL delete DB record fail Error MB OK Log WriteLog delete DB record fail return false WritePrivateProfileString FLAG flag false IPaddrSer ini 写入 flag 标志为 false GetPrivateProfileString MAXIP maxip 0 MaxIp sizeof MaxIp IPadd rSer ini 初始化最大 ip 地址 GetPrivateProfileString MINIP minip 0 MinIp sizeof MinIp IPaddrS er ini 初始化最小 ip 地址 while threadFlag if Read false 请求队列为空 Sleep 100 continue if strcmp req mac 0 一次请求包 mac req mac strcpy rep ipsend req ip if Search mac ip 根据网卡地址数据库中查找 ip 地址并找到 strcpy rep ipallot char LPCTSTR ip if Write 将应答信息写入发送队列 第 13 页 共 20 页 MessageBox NULL Fail to write ipaddress to the queue Error MB OK Log WriteLog Fail to write ipaddress to the queue continue else 没有找到要分配的 ip 地址 if ipcmp MinIp MaxIp 0 判断是否有剩余的 ip 地址分配 MessageBox NULL ipaddress is not enough Error MB OK Log WriteLog ipaddress is not enough continue else strcpy rep ipallot MinIp 将最小 ip 分配 if Write 应答信息写入发送队列 MessageBox NULL Fail to write ipaddress to the queue Error MB OK Log WriteLog Fail to write ipaddress to the queue continue if AddRecord mac MinIp req pcname 记录分配结果以 备下次查询时分配相同的 ip MessageBox NULL add ip fail Error MB OK Log WriteLog add ip fail if AddMinIP MinIp false 最小 ip 增加 MessageBox NULL ipaddress is not enough 第 14 页 共 20 页 Error MB OK Log WriteLog ipaddress is not enough continue WritePrivateProfileString MINIP minip MinIp IPaddrSer ini 最小 ip 写 入配置文件 else 如果是二次请求 strcpy rep ipallot MaxIp 分配给最大 ip if Write MessageBox NULL Fail to write ipaddress to the queue Error MB OK Log WriteLog Fail to write ipaddress to the queue continue SubMaxip MaxIp MinIp 最大 ip 减小并不记录进配置文件 3 2 43 2 4 发送应答模块发送应答模块 发送应答模块的主要功能是读取要发送的应答信息 将子网掩码 网关等 信息封装进应答包并以广播的形式发送出去 在单独的线程中实现 模块流程图如下 第 15 页 共 20 页 图 5 发送应答模块流程图 主要实现代码如下 GetPrivateProfileString NETMASK netmask netmask sizeof netmask IPaddrSer ini 从配置文件中读子网掩码 GetPrivateProfileString NETGATE netgate netgate sizeof netgate IP addrSer ini 从配置文件中网关 setsockopt sockSender SOL SOCKET SO BROADCAST char FAR 设置为可以发送广播 saClient sin addr s addr INADDR BROADCAST 设置为广播地址 while threadFlag 线程结束标志位 开始 初始化网络环 境 读取配置 信息 判断队列中是否有 发送信息 将发送信息读 取出来 T F 将子网掩码 网关等信息封 装进应答包 以广播形式发 送出去 第 16 页 共 20 页 if Read false 读取发送信息 Sleep 100 continue 封装应答包 strcpy buf pakhead 包头 strcat buf m ip ipsend 原 IP 地址 strcat buf strcat buf m ip ipallot 分配的 IP 地址 strcat buf strcat buf netmask 子网掩码 strcat buf strcat buf netgate 网关 if sendto sockSender buf strlen buf 1 0 SOCKADDR Log WriteLog send ipaddress fail return false 4 4软件测试软件测试 测试地点 学生寝室 硬件环境 2 台计算机 小型交换机 测试方法 1 在一台计算机上安装服务器 另一台安装客户端通过小型交换机相连 2 配置服务器和客户端 IP 信息 使其不在同一网段内 3 配置好服务器后启动服务器 启动客户端 察看客户端是否能得到正确 IP 地址 4 更改客户端网络配置信息 重新启动客户端 观察是否获得到相同 IP 地 址 5 更改服务器 IP 地址和客户端相同 重新启动客户端服务 6 观察客户端是否得到新的 IP 地址 测试用例 第 17 页 共 20 页 表 2 系统测试用例 服务器网络信息 IP 地址 130 100 101 100 子网掩码 255 255 255 0 网关 130 100 101 1 客户端网络信息 IP 地址 222 18 189 198 子网掩码 255 255 255 192 网关 222 18 189 193 服务器配置信息 IP 地址范围 192 169 0 1 192 168 0 5 子网掩码 255 255 255 0 网关 192 169 0 7 客户端获得 IP 信息 IP 地址 192 168 0 1 子网掩码 255 255 255 0 网关 192 169 0 7 修改后客户端网络信息 IP 地址 222 18 189 135 子网掩码 255 255 255 192 网关 222 18 189 193 客户端重启后 IP 信息 IP 地址 192 168 0 1 子网掩码 255 255 255 0 网关 192 169 0 7 更改后服务器网络信息 IP 地址 192 168 0 1 子网掩码 255 255 255 0 网关 192 169 0 7 客户端获得可用 IP 信息 IP 地址 192 168 0 5 子网掩码 255 255 255 0 网关 192 169 0 7 模块编程完结之后 对程序功能进行检测 首先针对一个模块测试 由于 有部分参数是需要从其它模块传递过来的 因此 先要把需要传递的参数付与 固定的值 然后才继续后续步骤 模块测试时 检验模块每个功能是否都能正 常使用 包括参数类型 参数大小 界面等是否符合规范 还有检测程序内部 的主执行通路是否都能按预定要求正常工作 能按正确输出 能运行稳定 测 试过程中 测试员要填写测试报告书 测试报告书对每个模块的测试项目和测 试结果进行了记录 发现 BUG 时及时提出以便修正 模块测试完后 先把在模块测试时固定了的需要与其它模块进行参数传递 的接口改正过来 连接好各模块之间的接口 把各个模块整合成一个系统 整 合过程中可能会出现很多问题 因此 还需要集成测试 即在把模块按照设计 要求组装起来的同时进行测试 主要目标是发现与接口有关的问题 测试每个 功能是否都能正常工作 这是一个 测试 修改 再测试 再修改 的 过程 直到整个系统能正常运行 所有功能都能正常实现 在测试过程中 出现过一些不符合标准的情况 经过修改 都基本与设计 第 18 页 共 20 页 书的标准符合 能够完成正常的功能 由于经验欠缺或其它某些原因 本次完 成的软件不可能是完美无缺的 测试只能尽量避免错误的产生和消除已经产生 的错误 使程序中的错误密度达到尽可能低的程度 减少错误的引入 但是不 可能完全杜绝软件中的错误 经过测试 本系统基本能符合要求 也能实现各 功能 结结 论论 系统的主要功能是实现对客户端 IP 地址的自动静态分配 通过对实验室计 算机网卡地址的记录 可以用网卡地址来标识每一台客户端计算机 网络通信 采用广播方式 服务器可以安装在任意一台计算机上面 可以接收客户端的服 务请求 根据网卡地址为客户端分配固定的 IP 地址并发送给客户端 主界面可 以显示请求服务的客户端的网卡地址和分配给客户端的 IP 地址 配置程序专用 配置分配客户端的 IP 地址范围 子网掩码 网关 保留的 IP 地址等等 基本 实现了系统的主要需求 在系统的开发设计过程中 我学到了很多知识 首先 对开发工具 VC 6 0 的掌握有了很大进步 了解了多线程机制和网络的广播机制 同时体 会到了理论联系实践的重要性 再次 通过与客户端的开发人员的合作 我懂 得了在团队里交流与互相帮助的重要性 当然 由于我经验欠缺或者是其他方 面的一些原因 这次的开发也存在一些不足 如程序拓展性不强 不能方便的 实现一些其它的附加功能 类的封装性不强 程序代码不规范等等 我想 在 以后的项目开发过程中 我会逐渐解决这些不足之处 参考文献参考文献 1 邱仲潘 柯渝 谢燕华 VC 6 0 从入门到精通 M 西安 电子工业出版社 2003 2 时代科技 VC 6 0 数据库编程大全 M 北京 机械工业出版社 2004 5 92 116 3 Jeffrey Richter Windows 高级编程指南 M 北京 人民邮电出版社 2003 4 侯捷 深入浅出 MFC M 北京 机械工业出版社 2003 4 43 70 5 田猛 Windows 网络编程指南 M 北京 人民邮电出版社 2004 6 李樊 陈阁 C 网络编程 M 西安 电子工业大学出版社 2003 7 David Kruglinski Visual C 技术内幕 M 北京 机械工业出版社 2005 第 19 页 共 20 页 致致 谢谢 本论文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程学院网络工程 系完成的 文中除了特别加以标注地方外 不包含他人已经发表或撰写过的研 究成果 也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使 用过的材料 除非另有说明 本文的工作是原始性工作 本文是在刘云本老师的热情关心和指导下完成的 他渊博的知识和严谨的 治学作风使我受益匪浅 对顺利完成本课题起到了极大的作用 在此向他表示 我最衷心的感谢 在论文完成过程中 本人还得到了陶兴前同学的热心帮助 本人向他们表 示深深的谢意 最后向在百忙之中评审本文的各位专家 老师表示衷心的感谢 声声 明明 关于学位论文使用权和研究成果知识产权的说明 本人完全了解成都信息工程学院有关保管使用学位论文的规定 其中包括 1 学校有权保管并向有关部门递交学位论文的原件与复印件 2 学校可以采用影印 缩印或其他复制方式保存学位论文 3 学校可以学术交流为目的复制 赠送和交换学位论文 4 学校可允许学位论文被查阅或借阅 5 学校可以公布学位论文的全部或部分内容 保密学位论文在解密后 遵守此规定 除非另有科研合同和其他法律文书的制约 本论文的科研成果属于成都信 息工程学院 特此声明 毕毕 业业 设设 计计 论论 文文 实验室计算机实验室计算机 IPIP 地址自动设置程序地址自动设置程序 服务器端的设计与实现服务器端的设计与实现 论文作者姓名 论文作者姓名 申请学位专业 申请学位专业 申请学位类别 申请学位类别 指指导导教教师师姓姓名名 职职称称 论文提交日期 论文提交日期 实验室计算机实验室计算机 IPIP 地址自动设置程序地址自动设置程序 服务器端的设计与实现服务器端的设计与实现 摘摘 要要 IP 地址的分配和管理是实验室管理员比较重视的一个问题 而大部分管理 员都采用的是 DHCP 技术来实现 虽然 DHCP 技术可以为用户接入网络提供方便 但还存在一些弊端 例如 IP 地址具有随机性 用户的 IP 地址是随机分配的 具有不确定性等等 本系统的主要功能就是实现对实验室计算机 IP 地址的静态 分配 从而解决 DHCP 技术的一些缺陷 主要实现方法为 对有请求的客户端的 网卡地址和分配给其的 IP 地址进行记录 通过网卡地址来标识某一具体主机 当其再有请求到达时 分配给其已经记录的 IP 地址 以实现分配给客户端固定 IP 地址的功能 若要手工实现对客户端 IP 地址的静态分配 可直接在数据库 中根据网卡地址修改对应的 IP 地址即可 IP 地址的设置由客户端实现 程序 的开发工具为 VC 6 0 连接数据库方式为 ADO 方式 为了优化系统性能和使 客户端的请求不阻塞 采用了多线程技术 关键词关键词 ADO 多线程 网络广播 网络编程 the Automatic IP Address Configuration Software for Lab the Design and Implementation of the Server side program Abstract More and more laboratory managers care about the IP address allocation and management problem Most administrators are using DHCP to resolve it Although DHCP technology can provide users convenient access to network but there are some drawbacks such as the random IP address This causes the user s IP address is distributed randomly with uncertainty The main function of the system is to achieve the static IP address allocation of the laboratory computers It remedies the DHCP technology s drawbacks The system uses some network technology It records the MAC address and the allocated IP address of the client who send the request packet to server by LAN Through identifying a host by the specific MAC address when the same request arrived the same IP addresses shall be allocated again which achieves the function that the client shall be allocated to the fixed IP addresses If users need to manually allocate the IP address they can modify the IP addresses that correspond to MAC address IP addresses are set by the client system Program development tools is Visual C 6 0 access the database with ADO to optimize system performance To avoid the block of client requests multithread technology is used Key words ADO multithread Network Broadcast Network Programming 目目 录录 论文总页数 20 页 1引言 1 1 1课题背景 1 1 2主要采用技术 1 1 2 1 ADO 1 1 2 2 多线程 1 1 2 1 网络广播 2 1 3系统开发环境 2 1 3 1 系统软件环境 2 1 3 2 工具简介 2 2系统概述 3 3系统模块设计与实现 4 3 1总体设计 4 3 1 1 系统结构设计 4 3 1 2 通信协议 6 3 1 3 数据库设计 6 3 2编码实现 6 3 2 1 配置模块 6 3 2 2 接收请求模块 9 3 2 3 处理请求模块 11 3 2 4 发送应答模块 14 4软件测试 16 结 论 18 参考文献 18 致 谢 19 声 明 20 第 1 页 共 20 页 5 5 引言引言 5 15 1 课题背景课题背景 目前 对学校的实验室来说 IP 地址的分配和管理是管理员比较重视的一 个问题 而大部分管理员都采用的是 DHCP 技术来实现 DHCP 技术是通过网络 内一台服务器提供相应的网络配置服务来实现的 可以为网络终端设备提供临 时的 IP 地址 默认网关 DNS 服务器等网络配置 虽然 DHCP 技术可以为用户 接入网络提供方便 但还存在一些弊端 例如 IP 地址具有随机性 用户的 IP 地址是随机分配的 具有不确定性 访问权限会发生变化 如果用户的访 问权限是基于 IP 地址划分的 则访问权限随 IP 地址不同而变化 不可被访问 通过 DHCP 获得的 IP 地址具有不确定性 用户被访问难度较大 本系统对访问 服务器的客户端网卡地址和分配其的 IP 地址进行记录 通过网卡地址来标识网 内某一具体主机 并分配其固定的 IP 地址 从而弥补以上的一些不足之处 IP 地址的设置由客户端实现 5 25 2 主要采用技术主要采用技术 5 2 15 2 1 ADOADO ADO ActiveX Data Objects ActiveX 数据对象 是 Microsoft 为强大的 数据访问接口 OLE DB 对象链接和嵌入数据库 而设计的 是一个便于使用的 应用层的编程接口 使用 ADO 编写的应用程序可以通过 OLE DB 提供者访问和 操作数据库服务器中的数据 ADO 不仅可以访问关系型数据库 还可以访问非 关系型数据库 同时由于 OLE DB 是基于 COM 接口的技术 使用这种技术可以直 接对数据库的驱动程序进行访问 从而大大提供了访问速度 ADO 最主要的优 点是易于使用 速度快 内存支出少和磁盘冗余小 ADO 在关键的应用方案中 使用最少的网络流量 并且在前端和数据源之间使用最少的层数 所有这些都 是为了提供轻量 高性能的接口 5 2 25 2 2 多线程多线程 多线程是这样一种机制 它允许在程序中并发执行多个指令流 每个指令 流都称为一个线程 彼此间互相独立 线程又称为轻量级进程 它和进程一样 拥有独立的执行控制 由操作系统负责调度 区别在于线程没有独立的存储空 间 而是和所属进程中的其它线程共享一个存储空间 这使得线程间的通信远 较进程简单 多个线程的执行是并发的 也就是在逻辑上 同时 而不管是否是物理上 的 同时 如果系统只有一个 CPU 那么真正的 同时 是不可能的 但是由 于 CPU 的速度非常快 用户感觉不到其中的区别 因此我们也不用关心它 只 第 2 页 共 20 页 需要设想各个线程是同时执行即可 多线程和传统的单线程在程序设计上最大的区别在于 由于各个线程的控 制流彼此独立 使得各个线程之间的代码是乱序执行的 5 2 35 2 3 网络广播网络广播 网络广播是指一个节点同时向相同域中的其它所有节点传输数据包的过程 组播是一种特殊的广播 其中一组请求收听的选定用户将收到广播 广播传输 通常在局域网 如以太网 中进行 但有时也发生在虚拟局域网 VLAN 中 IPv6 支持单播 Unicast 组播 Multicast 以及任意播 Anycast 三种类 型 IPv6 中没有关于广播 Broadcast 的具体划分 而是作为组播的一个典 型 网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中培训燃气知识内容课件
- 高中劳动课课件定做
- 高三诗歌意象鉴赏课件
- 劳动合同与聘用合同适用性对比及签订技巧解析
- 离婚协议公证模板:情感纠葛化解与财产分割规范
- 基于离婚诉讼的财产分割及资金监管执行协议模板
- 5G网络域名申请与虚拟主机高性能租赁合同
- 精准假离婚协议条款协商与子女抚养责任分配服务
- 考研专业课辅导咨询服务合同
- 髋关节解剖学课件
- 一年级上册道法教学计划
- 《牧羊少年奇幻之旅》作品介绍分享
- 创客教育课件
- 礼仪培训微笑礼仪
- 人类群星闪耀时
- 某部队副食品供货项目配送方案
- 中国地质大学(武汉)软件工程专业学位研究生实践手册解析
- 母亲节的惊喜读后续写情节构建课件高三英语一轮复习
- PEM心理健康管理系统在体检中心应用
- DNA是主要的遗传物质【高效备课精研+知识精讲提升】高一下学期生物人教版必修2
- GA 1808-2022军工单位反恐怖防范要求
评论
0/150
提交评论