毕业设计任务书-局域网监控技术研究与实现内容摘要:
使用数据报式套接字。 原始式套接字( SOCK_RAW) : 该接口允许对较低层协议,如 IP、 ICMP 直接访问。 常用于检验新的协议实现或访问现有服务中配置的新设备。 SOCKET 基本概念 有了以上的了解 ,我们下面来介绍 SOCKET。 在一个网络通信中,不同主机上的两个进程交换数据。 我们就将网络通信的每端称为端点。 SOCKET 就是一个网络端点的抽象。 为了进行网络通信(通过 SOCKET 接口),程序在网络对话的每端都需要一Q260046902 专业做论文 XIII 个 SOCKET。 两个 SOCKET 之间的连接可以是面向连接的或面向无连接的。 SOCKET 模型采用“打开-读-写-关闭”方式。 在建立 SOCKET 时不用指明一个地址,在 调用 SOCKET 函数时,将返回一个指向描述符入口的 SOCKET 句柄。 作为程序员,访问描述符表的唯一途径就是通过 SOCKET描述符。 建立一个 SOCKET,意味着数据结构分配存储空间。 图 显示一个简化的SOCKET 数据结构。 P o i n t e r t o s t r u c t u r eP r o t o c o l F a m i l yT y p e o f S e r v i c eL o c a l I P A d d r e s sR e m o t e I P A d d r e s sL o c a l P r o t o c o l P o r tR e m o t e P r o t o c o l P o r t协 议 簇服 务 类 型本 地 I P 地 址远 地 I P 地 址索 引 描 述 符 表 S O C K E T 数 据 结 构 图 socket 结构图 我们知道, INTERNET 上的每台主机都有一个唯一的互联网地址,每台主机内特定的应用程序(或进程)都使用协议端口作为它的地址。 INTERNET 程序必须使用TCP/IP 协议在 INTERNET 上传输数据。 总之,两个网络程序之间的一个网络连接包括下面五种信息: 本地协议端口,指出接收数据包的进程 本地主机地址,指出接收数据包的主机 远地协议端口,指出目的进程或程序 远地 主机地址,指出目的主机 协议,指出程序在网络上传输数据时使用的协议 建立 SOCKET 当编写 TCP/IP 程序时, SOCKET 接口可以让你的程序通过一个 SOCKET 连接使用UDP 或 TCP 来建立 SOCKET 和将 SOCKET 连到目的主机上。 为了建立 SOCKET,程序可以调用 SOCKET 函数。 SOCKET 函数返回一个 SOCKET 句柄。 该句柄确定一个提供此 SOCKET信息的描述符表入口。 下面程序显示了 SOCKET 函数调用的例子。 Socket_handle=socket(protocol_family,socket_type,protocol)。 当建立 SOCKET 时,三个参数必须赋值:协议簇, SOCKET 类型,协议。 协议簇:确定一些相关的协议,比如 TCP/IP 协议组,用符号 PF_INET 表示。 PF_VNIX 表示 VNIX 内部协议簇, PF_NS 表 ,美目, 示网络服务协议簇。 Q260046902 专业做论文 XIV SOCKET 类型:参数指明程序将 SOCKET 用于数据报传输还是字节流传输。 我们知道 TCP/IP 可以让程序使用面向连接或无连接的网络通信。 在面向连接的通信,数据按字节流传送;在面向无连接的通信时,数据是按照数据报传送。 SOCKET 接口使用符号 SOCK_DGRAM 表示数据报,用 SOCK_STREAM 表示字节流。 协议参数:指出程序希望使用的具体协议。 我们知道, TCP/IP 协议包括IP,ICMP,TCP,UDP 等几个协议。 该参数就是让你指明 SOCKET 请求使用的协议。 TCP 协议使用 IPPROTO_TCP,符号 IPPROTO_UDP 表示 UDP 协议。 配置 SOCKET 在使用 SOCKET 进行网络通信以前,必须配置此 SOCKET。 更为重要的是, SOCKET的内部必须包含正确的地址。 SOCKET 结构必须包括本地主机及远地主机 正确的协议端口和 IP 地址。 当用 SOCKET 函数建立 SOCKET 时,不用指明协议端口或主机地址。 你可以根据程序 打算怎样使用此 SOCKET,调用不同的 API函数来进行配置。 表 例出了配置 SOCKET API 函数。 S O K C E T 用 途 本 地 信 息 远 地 信 息面 向 连 接 客 户 c o n n e c t 保 存 本 地 信 息 c o n n c e t 保 存 远 地 信 息面 向 连 接 的 服 务 器 b i n d L i s t e n 和 a c c e p t无 连 接 客 户 b i n d s e n d t o无 连 接 服 务 器 b i n d r e c v f r o m 表 由于我们使用的采用面向无连接的 UDP 协议,所以我们着重介绍面向无连接的通信来配置 SOCKET。 面向无连接 通信 的建 立 在前面的系统概述中,我们已经说明了该系统选择了面向无连接服务协议 UDP。 那么利用 SOCKET 如何来建立无连接的通信呢。 下面将进行详细的解释。 首先我们了看一下客户端和服务器端建立面向无连接的通信过程。 如图。 Q260046902 专业做论文 XV C o n n e c t i o n l e s s S e r v e rS o c k e t ( )B i n d ( )R e c v f r o m ( )S e n d t o ( )阻 塞 直 到 从 客 户 接 收 到 数 据 为 止S e r v e r服 务 器R e c v f r o m ( )S e n d t o ( )B i n d ( )S o c k e t ( )C o n n e c t i o n l e s s C l i e n tC l i e n t客 户无 连 接 的 服 务 器无 连 接 的 客 户数 据 请 求 数 据 应 答 图 通信过程图 使用面向无连接的通信,由于无连接的客户端程序没有和远的主机建立直接连接,所以它必须对协议端口进行侦听,以便接 收以及对它服务请求产生的数据报应答。 SOCKET API 中的 bind 函数让程序将一个本地地址(包括主机地址和协议端口 ) 和一个 SOCKET 联系起来。 建立服务器程序时,应该将服务器程序设计成等待客户的请求。 我们知道, TCP/IP传输层通过协议端口及应用程序通信。 即为了接收客户请求,服务器程序必须对传输层的一个特定的协议端口进行侦听。 当服务器程序使用 SOCKET 接口时,它使用 bind函数让 SOCKET 执行体登记一个协议端口。 也就是说,程序公司 SOCKET 执行体使用哪一个协议端口进行数据传送。 SOKCET 执行提接 着告诉传输层某个特定 的端口以被使用,并将其收到的所有数据传送给 socket API。 下面的程序显示了 bind 函数的调用。 Bind(sock,(LPSOCKADDR)amp。 sockin,sizeof(sockin)))。 该函数的第一个参数是指向刚才建立的 socket,第二个参数是一个指向包含有本机 IP 地址和端口信息的 sockaddr_in 结构类型的指针,其描述如下: Q260046902 专业做论文 XVI =AF_INET。 =。 =htons(USERPORT)。 bind(sock,(LPSOCKADDR)amp。 sockin,sizeof(sockin)))。 第一个参数指定地址簇,在 WINDOWS 下仅支持 AF_INET(TCP/IP);第二,第三个参数指明本地主机地址及端口号,经过 bind()将进程在网络上标识出来。 由于 1024以内的号都是保留的,因此如无特许需要一般不能将 的端口号设置为 1024 以内的值。 即 USERPORT 要大于 1024。 端口绑定以后,如何通过一个 无连接的 SOCKET发送数据,可以使用 sendto 和sendmsg 这两个 socket API 函数。 Result=sendto(socket_handle,message_buffer,buffer_length, special_falgs,socket_address_structure,address_structure_length); 它的第一个参数是许多 API 函数要求的 SOCKET 句柄。 SOCKET 句柄指明一个描述符入口,描述符入口指向一个内部 SOCKET 数据结构。 第二个参数指向一个包含传输信息的数据缓冲区。 你必 须为这个缓冲区分配内存,并将你的数据填放到此缓冲区内。 第三个参数简单地指明传送数据缓冲区的大小。 第四个参数是可选标志,可以对传输进行控制。 第五 个参数是指明目的地址,第六个参数指明目的地址的大小。 Sendto 函数相对应的是 recvfrom。 下面是一个典型的 recvfrom 函数的调用: Result=recvfrom(socket_handle,message_buffer,buffer_length,special_flags,socket_address_structure,address_structure_length); 它可以从本地协议端口获得数据,并将数据保存在报文数据缓冲区 (函数的第二个参数 )中。 也可以从数据报头分离出发送数据报的主机的网络地址。 使用 recvfrom 函数地服务器程序总要分离出发送者的地址。 也就是说,服务器程序需要知道谁发送请求信息。 当客户端程序使用 recvfrom 函数时,如果客户想继续进行网路对话的话,可能需要分离出发送者的地址。 另外,客户端也可能需要分离出发送者的地址已证明数据来自希望的主机。 也就是说, recvfrom 函数从数据报头将发送数据报的主机网络地址拷贝到recvfrom 第五个参数指向的 socket 地址结构中。 如果 socket 结构地址域包含一个有效的指针, recvfrom 函数将分离出发送者的地址。 如果 socket 地址结构域是NULL,recvfrom 函数不从数据报头拷贝或 抽取发送者的地址。 Q260046902 专业做论文 XVII 正是通过 sendto()和 recvfrom()过程的交互来完成整个通信过程。 当任何一方想中止通信时 ,只要调用 closesocket()就可以了。 另外,与程序启动时调用的WSAStartup()函数相对应,程序结束前,需要调用 WSACleanup()来通知 Winsock Stack释放 Socket 所占用的资源。 HOOK 编程 WINDOWS 操作系统是基于消息处理的 系统,系统内部及系统与应用程序之间都是通过消息传递消息的,在 WNDOWS 操作系统下,使用钩子( HOOK)截获并处理系统范围内的消息 ,才能完成普通程序无法完成的功能。 勾子 (Hook),是 Windows 消息处理机制的一个平台 ,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。 当消息到达后,在目标窗口处理函数之前处理它。 勾子机制允许应用程序截获处理 window消息或特定事件。 勾子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。 每当特定的消息发出,在没有到达目的窗口前,勾子程序就先捕获该消息,亦即勾子函数先得到控制权。 下图说明了钩子在消息处理链中的位置和作用。 在安装钩子程序之前,系统直接处理应用程序的消息,此时消息传递路径如图虚线所示;而安装勾子后,每当特定的消息发出,在没有到达目的窗口前,勾子程序就先捕获此消息,其内置的勾子函数就可以对消息进行处理,可以改变消息后才向系统传递,也可以不修改继续传递,还可以丢弃此消息,从而中止消息的传递,这是消息的传递路径如图。 图 勾子消息处理图 勾子的种类很多其作用也不同,如键盘勾子获得键盘消息,鼠标勾子可以截获鼠标消息,外壳谷子可以截获启动或关闭程序的消息,日志勾子可以监视及记录输入事件。 勾子分为专用勾子和全局勾子,线程专用勾子只监视制定的线程,要监视系统中Windows 系统 应用程序 勾子程序 Q260046902 专业做论文 XVIII 所有的线程,必须用到全局勾子。 对于可监控系统范围消。毕业设计任务书-局域网监控技术研究与实现
相关推荐
变高压侧的防雷及过电压保护。 ( 2) 接地系统采用 TNS系统接地方式 , 变电所接地网采用高压电力设备与低压电力设备共用接地装置的方式,接地装置由以水平接地体为主,垂直接地极为辅的方式构成,水平接地体选用φ 12(或 40*4 的镀锌扁铁 )热镀锌圆钢,垂直接地极选用∠50x5 热镀锌角钢或φ 50,δ =5钢管构成 ,用 50mm2 多股软铜线引接至设备接地处 , 变压器中性点
private int receiveheadbyteindex = 0。 private DataReceiveStatus datareceivestatus =。 private ArrayList malCmdQueue = new ArrayList()。 private Thread threadSending。 private Thread threadReceiving。
进程状态,远程启、停进程,远程上传、下载工程应用或更新程序组件。 流量控制系统的设计与仿真 5 图 力控进程管理界面 报警、事件处理: 强大的分布式报警、事件处理,支持报警、事件网络数据断线存储,恢复功。 功能强大的、开放的过程可视化 监控平台。 报表生成器: 提供丰富的报表操作函数集、支持复杂 脚本 控制,包括:脚本调用和事件脚本。 兼容 Excel 工作表 文件,提供类 Excel
根据《室内空气质量标准》、《公共建筑节能设计标准》等,本设计采取风机盘管加新风式空调系统。 风机盘管加新风式空调系统是空气 —— 水式空调系统中的一种主要形式,也是目前我国多层或高层民用建筑中最为普遍的一种空调方式。 它以投资少,占用空间小和使用灵活等优点广泛应用于各类建筑中。 风机盘管一般安 装在每个空调房间内,而新风则通过独立的新风机组和新风管道送入每个空调房间。
位(十进倍数单位与分数单位),但不得单独使用。 词头符号与所紧接的单位符号应作为一个整体对待,它们共同组成一个新单位(十进倍数或分数单位),并具有相同的幂次,而且还可以和其他单位构成组合单位。 例 1: 1 cm2 = (102 m)3 = 106 m3 例 2: 1 μ s1 = (106 s)1 = 106 s1 例 3: 1 mm2/s = (103 m)2/s = 106 m2/s