VxWorks操作系统指南(1.5) 网络通信

本文介绍了VxWorks操作系统如何进行网络通信,重点讲解了套接口(Sockets)的概念和功能。VxWorks的网络组件支持TCP/IP和UDP/IP协议,提供包括Sockets、RPC、远程文件存取等多种工具进行信息传输。套接口作为VxWorks系统与网络协议的接口,允许任务间进行可靠或无序的数据交换,提供流套接口(TCP)和数据报套接口(UDP)两种类型,并详细阐述了相关函数的使用。

1.1.网络通信

VxWorks提供了强大的网络功能,能与其它许多主机系统进行通信。网络完全兼容4.3BSD,也兼容SUN公司的NFS。这种广泛的协议支持在主机和VxWorksh目标机之间提供了无缝的工作环境,任务可通过网络向其它系统的主机存取文件,即远程文件存取,也支持远程过程调用。通过以太网,采用TCP/IPUDP/IP协议在不同主机之间传送数据。

VxWorks提供了如下一些网络工具完成信息传送:

Ÿ         Sockets

完成运行在VxWorks系统或其它系统之间任务的消息传送;

Ÿ         远程过程调用(RPC

允许任务调用另一主机(运行的系统为VxWorks或是其它)上的过程。

Ÿ         远程文件存取

VxWorks任务可采用NFSRSHFTPTFTP等方式远程存取主机文件。

Ÿ         文件输出

Ÿ         远程执行命令

VxWorks任务可通过网络激活主机系统中的命令。      

VxWorks网络组件结构如下:

 

 

1.1.1.套接口(Sockets

  Vxworks系统和网络协议的接口是靠套接字(sockets)来实现的。Sockets规范是得到广泛应用的、开放的、支持多种协议的网络编程接口。通讯的基石是套接口,一个通讯口是套接的一端,在这一端上你可以找到其对应的一个名字。一个正在被使用的套接口都有它的类型和与其相关的任务。套接口存在于通讯域中。通讯域是为了处理一般的线程通过套接口通讯而引进的一种抽象概念。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。各个任务使用这个域互相之间用Internet协议来进行通讯。

  套接口可以根据通讯性质分类。应用程序一般仅在同一类的套接口间通讯。不过只要底层的通信协议允许,不同类型的套接口间也照样可以通信。用户目前使用两种套接口,即流套接口(采用TCP协议)和数据报套接口(采用UDP协议)。流套接口提供了双向的、有序的、无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠、有序、无重复的。也就是说,一个从数据报套接口接收信息的任务有可能发现信息重复了,或者和发出时的顺序不同。数据报套接口的一个重要特点是它保留了记录边界。对于这一特点,数据报套接口采用了与现在许多包交换网络(例如以太网)非常类似的模型。 

套接口(socket)通信的最大优点是:过程间的通信是完全对等的,不管网络中过程的定位或主机所运行的操作系统。一般来说,流套套接口提供了可靠的面向连接的服务,应用较广泛。其应用程序时序图如下:

 

 

Socket函数:

socket()          创建一个套接口 

bind()        给套接口分配名称

listen()          打开TCP套接口连接

accept()          完成套接口间连接

connect()         请求连接套接口

shutdown()        关闭套接口间连接   

send()        TCP套接口发送数据

recv()        TCP套接口接收数据

select()          完成同步I/O传输

read()        从套接口读取信息

write()           向套接口写入信息

ioctl()           完成对套接口的控制

close()           关闭套接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值