




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 一 PING 程序设计 2 1 具体设计任务 2 1 1 实验目的 2 1 2 实验内容和要求 2 1 2 1 RAW 模式的 SOCKET 编程 2 1 2 2 具体内容 3 2 3 实验主要仪器设备和材料 3 3 基本思路及设计方案 4 构造 ICMP 请求回应包 发送 接收回应 若超时 打印超市 4 3 1 原理框图 4 3 2 主要程序源代码 6 4 实验结果 12 5 遇到的问题及解决方法 13 6 实验心得 13 7 思考题 13 二 文件传输协议的简单设计和实现 16 1 具体设计任务 16 1 1 实验目的 16 1 2 实验内容和要求 16 1 2 1 实验内容 16 1 2 2 具体要求 16 1 3 实验主要仪器设备和材料 17 2 文件传输协议的实现原理 17 2 1 基本思路及设计方案 17 2 2 相关理论 17 2 3 程序实现方法和方案 18 2 3 1 FTP 服务器流程图 18 2 3 2 FTP 客户端流程图 20 3 主要代码及其功能 21 3 1 服务端代码 21 3 2 客户端主函数 28 4 结果分析 32 5 思考题 34 6 问题及解决方法 36 问题 数据包丢失 36 原因 后来的数据把先来的数据淹没了 36 7 心得体会 36 2 一 一 PING 程序设计程序设计 摘要 摘要 该程序的核心为 ping 程序 通过 ping 程序来探测主机到主机之间是否可通信 如果 不能 ping 到某台主机 表明不能和这台主机建立连接 ping 使用的是 ICMP 协议 主要流程为 它发送 ICMP 回送请求消息给目的主机 ICMP 协议规定 目的主机必须返回 ICMP 回送应答消息给源主机 如果源主机在一定时间内收到 应答 则认为主机可达 若传送 IP 数据包发生错误 比如主机不可达 路由不可达等等 ICMP 协议将会把错误信息封包 然后传送回给主机 给主机一个处理错误的机会 这也 就是为什么说建立在 IP 层以上的协议是可能做到安全的原因 ICMP 数据包由 8bit 的错误 类型和 8bit 的代码和 16bit 的校验和组成 而前 16bit 就组成了 ICMP 所要传递的信息 关键词 关键词 pingping ICMPICMP 协议协议 IP 1 具体设计任务具体设计任务 1 1 实验目的实验目的 PING 程序是我们使用的比较多的用于测试网络连通性的程序 PING 程序基于 ICMP 使用 ICMP 的回送请求和回送应答来工作 由计算机网络课程知道 ICMP 是基于 IP 的一个协议 ICMP 包通过 IP 的封装之后传递 课程设计中选取 PING 程序的设计 其目的是希望同学们通过 PING 程序的设计 能初 步掌握 TCP IP 网络协议的基本实现方法 对网络的实现机制有进一步的认识 1 2 实验内容和要求实验内容和要求 1 2 1 RAW 模式的模式的 SOCKET 编程编程 PING 程序是面向用户的应用程序 该程序使用 ICMP 的封装机制 通过 IP 协议来工 作 为了实现直接对 IP 和 ICMP 包进行操作 实验中使用 RAW 模式的 SOCKET 编程 熟悉 SOCKET 的编程 包括基本的系统调用如 SOCKET BIND 等 3 1 2 2 具体内容具体内容 1 定义数据结构 需要定义好 IP 数据报 ICMP 包等相关的数据结构 2 程序实现 在 WINDOWS 环境下实现 PING 程序 3 程序要求 在命令提示符下输入 PING 其中 为目的主机的 IP 地址 不要求支持域名 对是否带有开关变量也 不做要求 不带开关变量时 要求返回 4 次响应 返回信息的格式 REPLY FROM 或 REQUEST TimeOut 无法 PING 通的情况 2 3 实验主要仪器设备和材料实验主要仪器设备和材料 联网计算机 4 3 基本思路及设计方案基本思路及设计方案 构造 ICMP 请求回应包 发送 接收回应 若超时 打印超市 3 1 原理框图原理框图 5 开始 输入 IP 地址 套街字的创建并连接 ping 函数 SendEchoRequest RecvEchoReply 检测目标主机 创建 ICMP 包 计算校验和 发送回应请求 接收应答回复并进行解析 显示结果 找到主机 设置目标 IP 地址 是 否 释放 socket WSACleanup 6 3 2 主要程序源代码主要程序源代码 include include include pragma comment lib ws2 32 lib 导入库文件 define ICMP ECHOREPLY 0 ICMP 回应答复 define ICMP ECHOREQ 8 ICMP 回应请求 define REQ DATASIZE 32 请求数据报大小 include using namespace std 定义 IP 首部格式 typedef struct IPHeader u char VIHL 版本和首部长度 u char ToS 服务类型 u short TotalLen 总长度 u short ID 标识号 u short Frag Flags 片偏移量 u char TTL 生存时间 u char Protocol 协议 u short Checksum 首部校验和 struct in addr SrcIP 源 IP 地址 struct in addr DestIP 目的地址 IPHDR PIPHDR 定义 ICMP 首部格式 typedef struct ICMPHeader u char Type 类型 u char Code 代码 u short Checksum 首部校验和 u short ID 标识 u short Seq 序列号 char Data 数据 ICMPHDR PICMPHDR 定义 ICMP 回应请求 typedef struct ECHOREQUEST ICMPHDR icmpHdr DWORD dwTime char cData REQ DATASIZE ECHOREQUEST PECHOREQUEST 7 定义 ICMP 回应答复 typedef struct ECHOREPLY IPHDR ipHdr ECHOREQUEST echoRequest char cFiller 256 ECHOREPLY PECHOREPLY 计算校验和 u short checksum u short buffer int len register int nleft len register u short w buffer register u short answer register int sum 0 使用 32 位累加器 进行 16 位的反馈计算 while nleft 1 sum w nleft 2 补全奇数位 if nleft 1 u short u 0 u char sum u 将反馈的 16 位从高位移到低位 sum sum 16 sum sum sum 16 answer sum return answer 发送回应请求函数 int SendEchoRequest SOCKET s struct sockaddr in lpstToAddr static ECHOREQUEST echoReq static nId 1 static nSeq 1 int nRet 8 填充回应请求消息 echoReq icmpHdr Type ICMP ECHOREQ echoReq icmpHdr Code 0 echoReq icmpHdr Checksum 0 echoReq icmpHdr ID nId echoReq icmpHdr Seq nSeq 填充要发送的数据 for nRet 0 nRet h addr 设置目标 IP destIP sin family AF INET 地址规格 10 destIP sin port 0 提示开始进行 PING printf nPinging s s with d bytes of data n pstrHost inet ntoa destIP sin addr REQ DATASIZE 发起多次 PING 测试 for nLoop 0 nLoopmaximum maximum dwElapsed if dwElapsed minimum minimum dwElapsed average dwElapsed printf nReply from s bytes d time ldms TTL d inet ntoa srcIP sin addr REQ DATASIZE dwElapsed cTTL printf n n printf Ping statistics for s n inet ntoa srcIP sin addr printf Packets Sent d Received d Lost d f loss n sent reveived lost float lost 1 0 sent 100 if lost 0 printf Approximate round trip times in milli seconds n printf Minimum dms Maximum dms Average dms n minimum maximum average sent printf n n nRet closesocket rawSocket if nRet SOCKET ERROR 11 printf closesocket error d n WSAGetLastError 主程序 void main printf Welcome to the Ping Test n while 1 WSADATA wsd 检测输入的参数 初始化 Winsock if WSAStartup MAKEWORD 1 1 char opt1 100 char ptr opt1 bool log false printf Ping cin getline opt1 100 n if opt1 0 ptr opt1 3 开始 PING Ping ptr log 程序释放 Winsock 资源 WSACleanup 12 4 实验结果实验结果 直接 PING IP 地址 且 PING 通的情况下 返回四次响应 如下图 PING 域名 PING 域名 若有丢包 如下图所示 PING 域名前加 t 显示循环 13 5 遇到的问题及解决方法遇到的问题及解决方法 调试时发现发送时间比预料中的长很多 经检查原来是函数中的符号 放置的位置过后 6 实验心得实验心得 通过这次的课程设计 加深了对网络协议的理解 一部机器想联网 必须遵守共同的通信 约定 协议 才能正常同其他机器进行通信 7 思考题思考题 1 本题目只要求实现 PING 的一些简单功能 在 Windows 命令行模式下 输入 Ping 回 车 查看 PING 的所有功能 考虑如何实现这些功能 答 首先 Ping 命令会构建一个固定格式的 ICMP 请求数据包 然后由 ICMP 协议将这个数 据包连同地址 192 168 1 2 一起交给 IP 层协议 和 ICMP 一样 实际上是一组后台运行 14 的进程 IP 层协议将以地址 192 168 1 2 作为目的地址 本机 IP 地址作为源地址 加上一些其他的控制信息 构建一个 IP 数据包 并在一个映射表中查找出 IP 地址 192 168 1 2 所对应的物理地址 也叫 MAC 地址 熟悉网卡配置的朋友不会陌生 这是数 据链路层协议构建数据链路层的传输单元 帧所必需的 一并交给数据链路层 后者 构建一个数据帧 目的地址是 IP 层传过来的物理地址 源地址则是本机的物理地址 还要 附加上一些控制信息 依据以太网的介质访问规则 将它们传送出去 2 如果一台主机能 ping 通自己但网络不通 可能是什么原因 答 1 Windows 服务器的网络服务功能还没启动 2 计算机的 TCP IP 协议没有与 网卡有效的绑定 3 可能计算机的网卡安装不正确 也可能是没连通 3 考虑 Netstat Traceroute ipconfig 等网络测试应用程序的工作原理以及使用 答 Netstat 的工作原理及使用 1 显示本地或与之相连的远程机器的连接状态 包 括 TCP IP UDP ICMP 协议的使用情况 了解本地机开放的端口情况 2 检查网络接口是 否已正确安装 如果在用 netstat 这个命令后仍不能显示某些网络接口的信息 则说明这 个网络接口没有正确连接 需要重新查找原因 3 通过加入 r 参数查询与本机相连的 路由器地址分配情况 4 检查一些常见的木马等黑客程序 因为任何黑客程序都需要通过 打开一个端口来达到与其服务器进行通信的目的 Traceroute 程序的设计是利用 ICMP 及 IP header 的 TTL Time To Live 首先 traceroute 送出一个 TTL 是 1 的 IP 数据报到目的地 当路径上的第一个路由器 router 收到这个数据报时 它将 TTL 减 1 此时 TTL 变为 0 了 所以该路由器会将此 数据报丢掉 并送回一个 ICMP time exceeded 消息 traceroute 收到这个消息后 便 知道这个路由器存在于这个路径上 接着 traceroute 再送出另一个 TTL 是 2 的 datagram 发现第 2 个路由器 traceroute 每次将送出的数据报的 TTL 加 1 来发现 另一个路由器 这个重复的动作一直持续到某个数据报抵达目的地 当数据报到达目的地 后 该主机并不会送回 ICMP time exceeded 消息 因为它已是目的地了 Ipconfig 的工作原理及使用 1 查找目标主机的 IP 地址及其它有关 TCP IP 协议的 信息 2 当用户的网络中设置的是 DHCP 动态 IP 地址配置协议 时 利用 Ipconfig winipcfg 可以让用户很方便地了解到所用 IPconfig winipcfg 机的 IP 地址的实 际配置情况 因为它有一个 all 这个参数 所以它可侦查到本机上所有网络适配的 IP 地址分配情况 比 ping 命令更为详细 如果我们一台 IP 地址为 192 168 2 199 上运行 Ipconfig 命令后 窗口中显示了主机名 DNS 服务器 节点类型以及主机的相关信息如 15 网卡类型 MAC 地址 IP 地址 子网掩码以及默认网关等 其中网络适配器的 MAC 地址在 检测网络错误时非常有用 配置不正确的 IP 地址或子网掩码是接口配置的常见故障 其 中配置不正确的 IP 地址有两种情情况 1 网号部分不正确 此时执行每一条 Ipconfig 命 令都会显示 no answer 这样 执行该命令后错误的 IP 地址就能被发现 修改即可 2 主机部分不正确 如与另一主机配置的地址相同而引起冲突 这种故障是当两台主机同 时配置相同的 IP 地址时出现的间歇性的通信问题 更换 IP 地址中的主机号部分 该问题 即能排除 16 二二 文件传输协议的简单设计和实现文件传输协议的简单设计和实现 摘要摘要 初始化套接字 使用 TCP 协议实现客户端对服务器的硬盘文件的访问 包括上传和下载 关键词 上传关键词 上传 下载下载 TCP 套接字套接字 1 具体设计任务具体设计任务 1 1 实验目的实验目的 文件传送是各种计算机网络都实现的基本功能 文件传送协议是一种最基本的应用层 协议按照客户 服务器的模式进行工作 提供交互式的访问 是 INTERNET 使用最广泛的协 议之一 本实验的目的是 学会利用已有网络环境设计并实现简单应用层协议 掌握 TCP IP 网络应用程序基本的设计方法和实现技巧 1 2 实验内容和要求实验内容和要求 1 2 1 实验内容实验内容 我们的计算机网络实验环境建立在 TCP IP 网络体系结构之上 各计算机除了安装 TCP IP 软件外 还安装了 TCP IP 开发系统 实验室各计算机具备 Windows 环境中套接字 socket 的编程接口功能 可为用户提供全网范围的进程通信功能 本实验要求学生利用这 些功能 设计和实现一个简单的文件传送协议 1 2 2 具体要求具体要求 用 socket 编程接口编写两个程序 分别为客户程序 client c 和服务器程序 server c 该程序应能实现下述命令功能 17 get 取远方的一个文件 put 传给远方一个文件 pwd 显示远主当前目录 dir 列出远方当前目录 cd 改变远方当前目录 显示你提供的命令 quit 退出返回 这此命令的具体工作方式 指给出结果的形式 可以参照 FTP 的相应命令 有余力的 同学可以多实现几个命令 最后 写出实验报告 1 3 实验主要仪器设备和材料实验主要仪器设备和材料 联网计算机 2 文件传输协议的实现原理文件传输协议的实现原理 2 1 基本思路及设计方案基本思路及设计方案 FTP 的基本思路为 客户端向服务器提交查看 下载文件的请求 服务器则一直作检查 请求的活动 当检测到有请求时 则响应请求 具体的功能如下 服务器功能 1 浏览本地目录 自动获取 IP 将本地目录发送至客户端 客户端能够在相应位置 显示 2 上传某文件至客户端 客户端功能 1 查看本地目录 将要下载的文件存入到目录中 显示从服务器获得的目录 2 下载文件 2 2 相关理论相关理论 连接套接字 socket 用 TCP 相关功能侦听 socket 发送 send socket 接收 18 receive 2 3 程序实现方法和方案程序实现方法和方案 2 3 1 FTP 服务器流程图服务器流程图 19 开始 初始化 路径 端口 获取 IP 端口 将文件上传 侦听 根据客户端操作命 令传送目录 初始化完 成否 能启动 是否有连 接 请求下载 输出提示信息 其他请求 结束 输出错误信息 否 否 否 否 否 否 是 是 是 是 20 2 3 2 FTP 客户端流程图客户端流程图 开始 初始化连接 成功 否 是 服务器响应 操作目录 服务器响应 上传下载 命令输入 发送发送 目录信息文件数据 接受存储 接受存储 显示内容 返 回 21 3 主要代码及其功能主要代码及其功能 3 1 服务端代码 服务端代码 include include include using namespace std pragma comment lib ws2 32 lib bool m connected 0 int m sendingFile 0 char m currentPath 1500 0 FILE m file 0 sockaddr in addr Client SOCKET sock Client void Analysis char buf int DWORD WINAPI RecvThread LPVOID lpParameter thread data printf s 已连接 n inet ntoa addr Client sin addr SOCKET sock SOCKET lpParameter char buf 1500 for 1 int len recv sock buf 1500 0 if len 1 closesocket sock m connected 0 if m file fclose m file m file 0 m sendingFile 0 printf 与 s 连接断开 n inet ntoa addr Client sin addr return 0 Analysis buf len 22 return 1 DWORD WINAPI ListenThread LPVOID lpParameter thread data SOCKET LISTEN SOCKET lpParameter for 1 if m connected int len sizeof sockaddr GetCurrentDirectory 1500 m currentPath 当前路径 strcpy m currentPath Z sock Client accept LISTEN sockaddr CreateThread 0 0 RecvThread void sock Client 0 0 else Sleep 2000 return 1 void main WORD wVersionRequested WSADATA wsaData int err wVersionRequested MAKEWORD 1 1 err WSAStartup wVersionRequested if err 0 return if LOBYTE wsaData wVersion 1 HIBYTE wsaData wVersion 1 WSACleanup return SOCKET sockSrv socket AF INET SOCK STREAM 0 SOCKADDR IN addrSrv addrSrv sin addr S un S addr htonl INADDR ANY addrSrv sin family AF INET addrSrv sin port htons 2438 23 bind sockSrv SOCKADDR listen sockSrv 5 CreateThread 0 0 ListenThread void sockSrv 0 0 for 1 Sleep 100 include void OnDir void OnPwd void OnCd char buf void OnPut char buf DWORD WINAPI OnGet LPVOID lpParameter thread data void OnGet char void Analysis char buf int len int comand int buf switch comand case 1 OnGet buf break case 2 OnPut buf break case 3 OnPwd break case 4 返回 显示命令 目录 OnDir break case 5 OnCd buf break CreateThread 0 0 OnGet void buf 0 0 返回改变目录后的目录 case 11 请求文件数据 if m sendingFile break char sendBuf 1500 int sendBuf 11 len fread void sendBuf 4 1 1496 m file Sleep 10 24 send sock Client sendBuf len 4 0 if len 0 fclose m file m file 0 int sendBuf 8 strcpy sendBuf 4 传送成功 send sock Client sendBuf strlen sendBuf 4 5 0 m sendingFile 0 printf send sucess n break case 22 if m sendingFile break fwrite void buf 4 1 len 4 m file Sleep 10 if len 4 fclose m file m file 0 int sendBuf 8 strcpy sendBuf 4 传送成功 send sock Client sendBuf strlen sendBuf 4 5 0 m sendingFile 0 printf send sucess n len 22 send sock Client char break void OnPwd char sendBuf 1000 int type int sendBuf type 8 显示 char s sendBuf 4 strcpy s m currentPath send sock Client sendBuf strlen m currentPath 5 0 void OnDir char sendBuf 1500 25 char filename 200 strcpy filename m currentPath strcat filename long hFile finddata t fileinfo if hFile findfirst filename flat 8 显示 8 char filename2 sendBuf 4 filename2 0 0 filename2 1 0 do int foder 0 if fileinfo attrib if strlen memset sendBuf 0 1500 filename2 sendBuf 4 flat 8 filename2 0 0 filename2 1 0 Sleep 5 strcat filename2 fileinfo name if foder strcat filename2 文件夹 strcat filename2 n filename2 while findnext hFile send sock Client sendBuf 4 strlen findclose hFile void OnCd char buf char sendBuf 1000 char filename 200 int type int sendBuf type 8 char s sendBuf 4 26 if buf 4 i i if m currentPath i m currentPath i 0 OnPwd return OnPwd return strcpy filename m currentPath strcat filename long hFile finddata t fileinfo if hFile findfirst filename strcat m currentPath buf 4 OnPwd findclose hFile return while findnext hFile sprintf s s 文件夹不存在 buf 4 send sock Client sendBuf strlen s 5 0 Sleep 500 return findclose hFile sprintf s s 文件夹不存在 buf 4 type 8 send sock Client sendBuf strlen s 5 0 27 DWORD WINAPI OnGet LPVOID lpParameter thread data void OnGet char buf char buf char lpParameter m sendingFile 1 char sendBuf 1500 char filename 100 strcpy filename m currentPath strcat filename strcat filename buf 4 if m file fopen filename rb 0 int sendBuf 8 strcpy sendBuf 4 传送失败 send sock Client sendBuf strlen sendBuf 4 5 0 return int sendBuf 1 strcpy sendBuf 4 buf 4 send sock Client sendBuf 5 strlen sendBuf 4 0 m sendingFile 1 return void OnPut char buf m sendingFile 1 char sendBuf 1500 char filename 100 strcpy filename m currentPath strcat filename strcat filename buf 4 if m file fopen filename wb 0 int sendBuf 8 strcpy sendBuf 4 传送失败 28 send sock Client sendBuf strlen sendBuf 4 5 0 return int sendBuf 2 请求文件数据 strcpy sendBuf 4 buf 4 send sock Client sendBuf 5 strlen sendBuf 4 0 m sendingFile 1 return 3 2 客户端主函数 客户端主函数 include include include include using namespace std pragma comment lib ws2 32 lib int m currentTask 0 int m connected 0 SOCKET sock Client FILE m file 0 int m sendingFile 0 void Analysis char int DWORD WINAPI RecvThread LPVOID lpParameter thread data printf 已连接服务器 n SOCKET sock SOCKET lpParameter char buf 1500 for 1 int len recv sock buf 1500 0 if len 0 printf fuck n if len 1 closesocket sock m connected 0 if m file fclose m file m file 0 29 m currentTask 0 printf 与 服务器 连接断开 n return 0 Analysis buf len return 1 void main WORD wVersionRequested WSADATA wsaData int err wVersionRequested MAKEWORD 1 1 err WSAStartup wVersionRequested if err 0 return if LOBYTE wsaData wVersion 1 HIBYTE wsaData wVersion 1 WSACleanup return sock Client socket AF INET SOCK STREAM 0 SOCKADDR IN addrSrv addrSrv sin addr S un S addr inet addr 127 0 0 1 addrSrv sin family AF INET addrSrv sin port htons 2438 if connect sock Client SOCKADDR else return CreateThread 0 0 RecvThread void sock Client 0 0 get 取远方的一个文件 1 put 传给远方一个文件 2 pwd 显示远主当前目录 3 dir 列出远方当前目录 4 cd 改变远方当前目录 5 30 显示你提供的命令 6 quit 退出返回 7 显示 8 for 1 char comand 100 char inc 100 memset inc 0 100 gets inc for int i 0 inc i i comand i inc i comand i 0 char buffer 100 int k 0 if strcmp comand pwd int buffer 3 k 0 else if strcmp comand dir int buffer 4 k 0 else if strcmp comand cd int buffer 5 k 3 else if strcmp comand get int buffer 1 k 4 else if strcmp comand put int buffer 2 k 4 else if strcmp comand printf 使用说明 n printf get 空格 文件名 回车 下载远方当前目录下的一个文件 n printf put 空格 文件名 回车 上传本地当前目录下的一个文件 n printf pwd 回车 显示远方主机当前目录 n printf dir 回车 获取远方当前目录下的文件及文件夹 n printf cd 文件夹名 回车 进入远方当前目录下的某一文件夹 n printf cd 回车 控制远方主机返回上一级目录 n continue else if strcmp comand quit closesocket sock Client return else printf 无效指令 回车 查看使用说明 n continue if k strcpy buffer 4 inc k send sock Client buffer 100 0 Sleep 1 31 closesocket sock Client WSACleanup void Analysis char buf int len int type int buf static char time 0 static double bytes 0 switch type case 8 printf s n buf 4 break case 11 if m file if len 4 0 fclose m file m file 0 break else break fwrite buf 4 1 len 4 m file bytes len 4 system cls if time printf 下载 f MB n bytes 1024 0 1024 0 if len 4 printf 下载 f MB n bytes 1024 0 1024 0 fclose m file m file 0 m sendingFile 0 break len 11 send sock Client char break case 1 if m file break m file fopen buf 4 wb len 11 send sock Client char bytes 0 time 0 break case 2 if m file break m file fopen buf 4 rb if m file printf 发送失败 n break type 22 32 len fread buf 4 1 1496 m file send sock Client buf 4 len 0 bytes 0 time 0 break case 22 if m file return type 22 len fread buf 4 1 1496 m file send sock Client buf 4 len 0 bytes len 4 system cls if time printf 上传 f MB n bytes 1024 0 1024 0 if len 0 printf 上传 f MB n bytes 1024 0 1024 0 fclose m file m file 0 4 结果分析结果分析 服务器的界面主要是接受命令 并执行命令 程序结果如下 33 quit 退出返回 结束客户端 socket 连接 34 5 思考题思考题 1 本题目采用的是 C S 模式下实现文件传输协议 考虑当前应用广泛的 B S 模式 这两种编程模式优缺点如何 答 C S Client Sever 模式 即客户机 服务器模式 是服务器和客户 机交换信息进行分布计算的一种形式 在这个模式里 客户机和服务器都用同 一语言 它们都理解的协议进行通信 B S 模式 即浏览器 服务器模式 它 是当前在 Web 数据库开发中应用较广泛的一种模式 也是一种从传统的二层 C S 模式发展起来的新的网络结构模式 其本质是三层结构 C S 模式 三层即 数据库访问层 业务逻辑层和用户界面层 两者的优缺点 client serv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模糊逻辑控制系统-洞察及研究
- 2025年事业单位工勤技能-黑龙江-黑龙江图书资料员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-青海-青海防疫员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-青海-青海经济岗位工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-青海-青海检验员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-青海-青海保育员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-陕西-陕西热处理工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-陕西-陕西殡葬服务工二级(技师)历年参考题库含答案解析(5套)
- PLD技术-国家安全密码
- 2025年事业单位工勤技能-陕西-陕西农业技术员三级(高级工)历年参考题库含答案解析(5套)
- 中交市政交通工程标准化施工指南
- 2022年南昌市红谷滩区教育系统事业单位教师招聘考试真题及答案
- 四年级数学下册脱式计算练习题200道
- 华为性格测试攻略
- 幼儿园“1530”安全教育实施方案
- GB/T 21720-2022农贸市场管理技术规范
- GB/T 9119-2010板式平焊钢制管法兰
- GB/T 4851-1998压敏胶粘带持粘性试验方法
- 高分通过司法考试笔记之三国法
- 线路工程施工质量三级自检报告(范文)
- 广东省机动车驾驶员培训备案表【模板】
评论
0/150
提交评论