基于VC++的串口通信服务的开发(3)

2019-03-22 10:05

无线传感网络课程论文

为这个安全队列的安全队列用户,否则不能对这个安全队列执行操作。安全队列在队列的入队和出队操作时的各线程同步。在某一时刻只能有一个线程操作该队列,这样的队列就是安全的队列。把队列的队头视为临界区,要对队列进行操作需进入临界区,从而实现现成的同步,队列的安全。

2.5 Windows套接字规范

随着个人计算机的日益普及,Windows操作系统的用户与日俱增。Microsoft以Berkeley Socket规范为范例定义了一套Microsoft Windows下的网络编程接口,它不仅包含了人们很熟悉的Berkeley Socket风格的库函数,也包含了一组针对Windows的扩展库函数,一是程序员能充分利用Windows消息驱动机制进行编程。

Windows Socket规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Socket规范也定义了一个二进制接口(ABI),并通过此二进制接口来保证其兼容性。因此这份规范定义了应用程序开发者能够使用,而且网络软件供应商也能够实现的一套函数调用和相关语义。

遵守这套Windows Socket规范的网络软件,称之为Windows Socket兼容,而Windows Socket兼容实现的提供者,称之为Windows Socket提供者。一个网络软件供应商必须百分之百地实现Windows Socket规范才能做到Windows Socket兼容。

Windows Socket规范定义并记录了如何使用API与Internet协议相连接,尤其要指出的是,所有的Windows Socket实现都支持流式套接字和数据报套接字。应用程序调用Windows套接字的API实现相互之间的通信。Windows套接字有利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。

在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:非对等作用和异步通信。客户机/服务器模式在操作过程中采取的是主动请示方式。首先服务器方要先启动,并根据请示提供相应服务:打开一个通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求;等待客户请求到达该端口;接收到重复服务请求,处理该请求并发送应答信号;返回第二步,等待另一客户请求;关闭服务器。客户方:打开一个通信通道,并连接到服务器所在主机的特定端口;向服务器发送服务请求报文,等待并接收应答;继续提出请求;请求结束后关闭通信通道并终止。

Windows Socket 2.0是Windows Socket 1.1发展的一个比较重大的变革,为了能与Windows Socket 1.1实现很好的兼容性,它在这基础上做了向后兼容:

6

无线传感网络课程论文

源码和二进制代码。这就实现了Windows Socket应用程序和任何版本的Windows Socket实现之间的最大的互操作性,同时也减少了Windows Socket应用程序使用者、网络协议栈提供者和服务提供者的许多痛苦。

2.6 客户机服务器系统

客户机服务器系统(Client/Server System)是计算机网络(尤其是Internet)中最重要的应用技术之一,其系统结构是指把一个大型的计算机应用系统变为多个能互为独立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机则各自处理相应的功能,共同实现完整的应用。用户使用应用程序时,首先启动客户机通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请示提供相应的服务。这是网络软件运行的一种形式。通常,采用客户机/服务器结构的系统,有一台或多台服务器以及大量的客户机。服务器配备大容量存储器并安装数据库系统,用于数据的存放和数据检索;客户端则安装专用的软件,负责数据的输入、运算和输出。

客户机和服务器都是独立的计算机。当一台连入网络的计算机向其他计算机提供各种网络服务(如数据、文件的共享等)时,它就被叫做服务器。而那些用于访问服务器资料的计算机则被叫做客户机。严格说来,客户机/服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。如宾馆、酒店的客房登记、结算系统,超市的POS系统,银行、邮电的网络系统等。

计算机网络的主要用途之一是允许共享资源。这种共享是通过相呼应的两个独立程序来完成的。每个程序在相应的计算机上运行。一个程序在服务器中,提供特定资源;另一个程序在客户机中,它使客户机能够使用服务器上的资源。例如,你正在计算机上用一个文字处理程序(如Word)进行工作,你告诉程序,你要编辑一个存贮在网络的另一台计算机中的特定的文件。你的程序将给那台计算机发送一个信号,请求它把这个文件传输过来。在这种情况下,你的文字处理程序是客户机,此时接受这种请求并发出这个文件的程序叫服务器,更确切地说它是一个文件服务器。

这种系统的绝妙之处,就是客户机和服务器程序不在同一台计算机上运行,这些客户机和服务器程序通常归属不同的计算机。例如,你可能坐在中国北京的一台PC机前,通过WWW来阅读万里之外的美国国家安全局的“今日新闻”,看一看美国总统选举的闹剧。在这种情况下,WWW客户机就是你的PC机,它运行着一个程序,此时WWW服务器是在美国另一端的一台超级计算机,它运行着另一个程序。

大部分计算机网络(包括所有的Internet服务)都使用这种客户机/服务

7

无线传感网络课程论文

器关系。要懂得怎样使用计算机网络(尤其是Internet),事实上就意味着要懂得怎样使用每个客户机程序。你的任务是启动客户机,并叫它执行程序。客户机的任务是连接上相对应的服务器,并确保你的指令正确执行。

客户机服务器工作时通常由一个公共的规制需要遵守,通信双方需要共同遵守这个规则才能保证通信的有效性,如需要传输大量语音数据时,需采用一种无须建立连接的传输方式,在这种方式下,数据可以以较快的熟读传输,而当需要确保数据准确无误地到达时,则应采用另外一种面向连接的传输方式。

8

无线传感网络课程论文

第三章 需求分析及设计方案

3.1功能需求 3.1.1服务器端

串口服务器上的串口通信服务打开一个固定的端口,监听客户端的Socket连接。若检测到客户端的连接则为客户端分配一个串口,供客户端发送数据。客户端同服务器协商好串口的配置信息,则客户端发送的数据服务器直接发送到串口,通过串口发送除去。若服务器检测到串口接受到数据,者直接把接收到的数据发送到客户端。即服务器中转串口和客户端的数据。这样一来客户端就好像直接链接到串口服务器上的串口,与服务器串口相连接的外设进行通信。串口服务器具有很多个串口形成一个串口池。串口池中的串口连接着不通或相同的外设,客户通过Internet联网的方式链接到服务器,同服务器的外设通信。 3.1.2串口通信

串口通信服务管理整个串口池。服务程序对串口池进行合理管理和分配,服务器端接收到客户端的连接请求,服务器会从串口池中选取一个串口供客户端使用。当客户端通信完毕,断开同服务器的链接时,服务器端回收这个串口,以供其他客户端使用。在分配串口的时候不能让不同用户使用同一串口,让每一个客户端独立的使用某一个串口。当客户端链接上服务器后,服务器为客户端分配一个串口供客户端使用。这时候串口通信需要被实现。包括串口的打开,串口参数设置,读写数据到串口以及关闭串口。

3.1.3客户端

客户端的需求相对简单。连接服务器的客户端通过指定服务器地址和端口号连接到服务器,设置串口的通信参数,同服务器通信。可以发送数据到服务器和接受服务器发送回来的数据,并显示接收到的数据。通信完毕时断开通服务器的连接。

3.2 设计方案

3.2.1 服务器端

服务器端使用Windows NT服务来提供服务,此服务监听某一端口,等待客户端的链接。为客户端提供服务。使用Windows API自己定义服务的行为。服务管理串口池,服务启动初始化时,检测服务器的串口,串口统一进入一个全局安全队列。当客户端发起连接请求时,服务器开启一个线程来处理该客户的请求,直到客户端断开连接,线程退出执行。在线程中,从安全队列的队头出队列一个

9

无线传感网络课程论文

串口,该串口分配给该客户使用,客户端首先设置该串口的通信参数,否则按照默认串口通信参数进行通信。如果有多个客户同时连接服务器则服务器同时开启多个线程来处理多个用户的连接请求。分配给客户端使用的串口接收外设发来数据时,服务器通过连接的Socket发送到客户端,客户端处理接收到的数据。服务器端接收到客户端发来的数据时,把接收到的数据发送到分配给这个客户端的串口,通过串口发送到外设,外设处理接收到的数据从而做出反应,完成通信。 3.2.2 串口通信

使用Windows API的串口操作函数,封装成串口类,来处理串口通信。此串口类统一操作串口池里的串口,根据不同的串口号来操作这些串口。从而达到每一个客户的使用一个串口,每个串口都是相同的操作。可以根据不同的通信设备为不同的串口设置不同的通信参数。串口通信负责处理串口的参数设置,串口的打开和关闭,数据的读和写,即写数据到串口和从串口读数据。打开串口时,服务处理此客户的线程开启另一线程监听串口是否有数据接收,当发现有数据来的时候,串口读出该数据通过Socket发送到客户端。

3.2.3客户端

客户端使用MFC编程创建基于对话框的应用程序。该程序使用Windows Socket建立同指定服务器的数据连接。当建立好HTTP链接后,可设置串口的通信参数,如:波特率,数据位,奇偶校验,停止位等。设置好串口的通信参数后就可以同服务器分配给的串口链接的外设通信了。发送数据到服务器的串口,和接收服务器发送回来的数据。

3.2.4开发工具

Microsoft Visual C++ 6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。

10


基于VC++的串口通信服务的开发(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铅锌矿床成矿理论和找矿方法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: