新闻中心

EEPW首页>手机与无线通信>设计应用> 一种基于嵌入式实时操作系统的微机保护装置网络通信方案

一种基于嵌入式实时操作系统的微机保护装置网络通信方案

作者: 时间:2011-05-20 来源:网络 收藏


  2 基于双缓冲队列的设计

本文引用地址://m.amcfsurvey.com/article/156291.htm

的基石是套接字,一个套接字是通信的一端,在这一端上可以找到与其对应的一个名字。一个正在被使用的套接字都有它的类型和其相关的任务,VxWorks可以实现与BSD4.4TCP/IP兼容的Socket编程接口。由于面向连接的服务器使用的传输层协议可保证数据传送的可靠性和顺序性,因此,本文的系统端采用基于流Socket的客户机/服务器(Client/Server)编程模式,其程序可以分为客户端程序和服务端程序。其通信模型如图2所示。


  2.1 客户端程序设计

  所谓客户端服务程序,就是主要用来发出服务请求的程序。客户端程序设计要知道服务端的地址、服务所提供的端*及服务使用的传输层协议(TCP协议)。在客户/服务器模式中,客户端程序可以通过两种形式找到服务器:一是通过指定服务器的IP地址和端*来找到服务端;二是通过广播的形式来来寻找服务器。本系统的客户端程序应用第一种形式来寻找服务器。知道了服务端的位置后,客户端任务就可以打开一个套接字,然后通过连接服务器来发送和接收数据。

  面向连接的TCP客户端编程结构分为部分:一是以TCP连接服务器,TCP协议是一种可保证传输可靠,且能顺序的传输层协议。在连接服务器之前,先要申请一个SOCK_STREAM类型的套接字,该套接字的通信域应制定为PF_INET类型;二是使用TCP与服务器通信,因为TCP是面向连接的协议,在连接建立以后,它可以通过send、recv等调用来进行通信,就像管道一样;三是关闭TCP连接,即在客户端程序结束,或使用完一个套接字后,可以使用close来关闭一个套接字。

  2.2 服务端程序设计

  在服务端程序设计中,可以根据对要实现的网络服务功能来设计自己的应用层协议。本系统服务端使用的TCP是面向连接的服务端。在这种模式下,服务端程序的设计就可以不考虑数据的可靠传送,而只要接受连接请求,并通过该连接进行通信即可,这样,底层的传输协议就自然会保证数据传送的可靠性。

  服务端程序设计的两种基本模式是循环模式和并发模式。循环模式就是服务端进程在总体机构上是一个循环,一次处理一个请求。并发模式的服务端进程一般可以同时处理多个请求,结构上一般采用父进程接受请求,然后产生子进程,这样一般为多进程结构。

  本文选用面向连接服务端的循环模式,此模式的建立步骤如下:

  (1)创建一个SOCK_STREAM类型的套接字;

  (2)调用bind指定地址和端口;

  (3)调用listen未处理连接请求的队列长度;

  (4)调用accept等待连接请求,一旦有连接请求,accept返回一个新的套接字描述符;

  (5)通过新的描述符与客户端交互信息,交互完毕,即关闭新产生的套接字并返回第四步。

  3系统模型设计

  系统中基于Socket模式下的通信过程分为控制端发起的通信过程和受控端发起的通信过程,这两种过程都是基于客户/服务器的网络编程模式。在客户/服务器模式中,请求的一方称为客户,提供服务的一方称为服务器。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭