基于嵌入式Linux系统的网络编程技术.pdf
《基于嵌入式Linux系统的网络编程技术.pdf》由会员分享,可在线阅读,更多相关《基于嵌入式Linux系统的网络编程技术.pdf(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-7 7-中国科技信息 2 0 0 6 年第 5 期 C H I N A S C I E N C E A N D T E C H N O L O G Y I N F O R M A T I O N M a r.2 0 0 6科 技 论 坛引 言源代码开放的嵌入式L i n u x操作系统具备稳定、高效、易定制、易裁减、硬件支持广泛等特点,逐渐成为嵌入式操作系统的研究重点。嵌入式系统中的设备与P C之间经常需要交换大量可靠的数据,而且必须达到一定的传输速率。在本系统中 PC和 ARM控制板之间传输的数据量有1 G B,而且要求传输速率大于1 M b y t e s/s。由于网口较之串口、并口有数
2、据传输速率快、准确性高等特性,因此,网络编程在实际中得到了大量的应用。利用网口进行数据交换还可以进行远程控制。在本系统中用的 A R M板是傅立叶公司的A T 9 1 R M 9 2 0 0评估板 1。其 C P U为 A R M 9 2 0 T,系统应用内存为3 2 M,f l a s h 为1 6 M,外扩网口一个,适应1 0 M/1 0 0 M以太网。串口两个,通讯速度可以达到1 1 5 2 0 0 b i t/s。普通I/O 口1 2 2 个。装载入板子的操作系统为R e d H a t l i n u x。网口通讯由于其快速性、高可靠性也逐渐成为系统与外界交换信息的主要接口。对于嵌入
3、式L i n u x 要用网口,需要在编译内核的时候选择支持以太网的T C P/I P和 U D P/I P协议栈,即在 A R M板上的L i n u x 内核里要有T C P/I P和 U D P/I P 协议栈支持。交叉编译的工具为:a r m-l i n u x-g c c。图1 L i n u x 下面向连接的s o c k e t 网络编程模型要采用网络编程就要用到网络套接字(S o c k e t)。网络的S o c k e t数据传输是一种特殊的 I/O,S o c k e t也是一种描述符,套接字是网络通信的基本操作单元,它提供了不同主机间的进程双向通信的端点,这些进程在通信
4、前各自建立一个S o c k e t,并通过对S o c k e t 的读写操作实现网络通信的功能。系统在 P C机与 A R M开发板之间建立一个可靠的面向连接的网络套接字服务,使得 A R M开发板可以通过网口与 PC机进行数据交换。1,L i n u x 网络编程模型及常用函数1.1 L i n u x 网络编程模型 2 在客户端/服务器模式中,我们将请求服务的一方称为客户(c l i e n t),将提供某种服务的一方称为服务器(s e r v e r)。一个服务程序通基于嵌入式 L i n u x 系统的网络编程技术N e t w o r k P r o g r a m m i n
5、g T e c h n o l o g y i n E m b e d d e d L i n u x俞冬丽 金华职业技术学院 3 2 1 0 1 7摘 要:本文详细的介绍了基于 L i n u x 系统的嵌入式 A R M 板与 P C 机之间的网络通讯技术,并结合实例阐述了 L i n u x 操作系统下 S o c k e t 套接字常用函数的用法,实现了客户机/服务器模型的网络编程。关键词:L i n u x;S o c k e t;嵌入式;客户机/服务器A b s t r a c t:T h i s p a p e r i n t r o d u c e s t h e t e c
6、h n o l o g y o f n e t w o r k c o m m u n i c a t i o n b e t w e e n t h e P C a n d A T 9 1 R M 9 2 0 0,w h i c h w a s i n s t a l l e d i n t h e e m b e d d e d L i n u x.I t a l s o i l l u s t r a t e st h e u s a g e o f c o m m o n s o c k e t f u n c t i o n s i n t h e L i n u x o p e r
7、 a t i n g s y s t e m,a n d a c h i e v e s t h e t e c h n o l o g y o f p r o g r a m m i n g w i t h t h e m o d e l o f C l i e n t/S e r v e r i n t h e n e t w o r k.K e y w o r d s:L i n u x;S o c k e t;E m b e d d e d;C l i e n t/S e r v e r常在一个众所周知的地址监听对服务的请求,也就使说,服务进程一直处于休眠状态,直到一个客户对这个服务的
8、地址提出了连接请求。在这个时候,服务程序被激活,它将创建出一个子进程为客户提供服务。而父进程继续在原地址监听。在子进程完成了相应的操作后,服务器关闭此连接套接字,并结束此子进程。套接字有三种类型:数据流套接字、数据包套接字和原始套接字。数据流套接字定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输。数据包套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,使无序的,并且不保证可靠,无差错。原始套接字允许对底层协议如I P或 I C M P直接访问,主要用于新的网络协议实现的测试。此处介绍的是用的最为广泛的面向连接的数据流套接字。其工作过程如下:服务器通过调用s o c
9、k e t 函数创建一个用于通讯的套接字。然后调用b i n d()将该套接字和本地网络地址联系在一起,再调用l i s t e n 函数使该套接字成为一个监听套接字,做好监听准备,并规定它的请求队列的长度。之后就调用a c c e p t 函数来启动该套接字,等待客户端的连接。客户在建立套接字后就可以调用c o n n e c t()和服务器建立连接。连接一旦建立,客户机和服务器之间就可以通过调用r e a d()和w r i t e()进行数据交换。最后待数据传送结束后,双方调用c l o s e()关闭套接字。客户端进程和服务器进程交互的过程如图1所示。1.2 套接字常用函数以下我们将介
10、绍建立面向连接的s o c k e t 网络编程常用函数 3 4 的用法。详细阐述一下容易出错的b i n d 函数。其余可以参考文献 2 。1.2.1、服务器和客户机首先要调用s o c k e t()函数,建立套接字并指明应用何种通讯协议。格式如下:i n t s o c k e t(i n t d o m a i n,i n tt y p e,i n t p r o t o c o l);此函数为通信建立一个面向连接的套接字端口,若成功调用将返回一个整型的文件描述符,错误则返回 1。参数 d o m a i n指明套接字所用的协议族,一般我们选用 AF_INET(I n t e r n
11、e t协议,T C P/I P编程选该值)。参数t y p e 指明套接字类型,即上面所阐述的三类型:SOCK_STREAM:流式套接字,S O C K _ D G R A M:数据报套接字及S O C K _ R A W:原始套接字。参数 p r o t o c o l 为套接字所用的协议,一般可以设为 0。如下代码用于创建一个 T C P套接字:i n t s o c k f d =s o c k e t(A F _ I N E T,S O C K _ S T R E A M,0);1.2.2、一旦S o c k e t 调用成功并返回一个文件描述符,则应将该S o c k e t与服务器
12、本机上的一个端口绑定,就可以在该端口监听服务请求。该函数只用于服务器端程序,客户端无此调用。其格式为:i n t b i n d (i n t s o c k f d ,c o n s ts t r u c t s o c k a d d r *a d d r e s s ,s i z e _ t a d d r l e n);此函数三个参数含义如下:a)s o c k f d 即为s o c k e t 函数返回的文件描述符;b)a d d r e s s 为指向s o c k a d d r 类型的指针,它保存了套接字的地址(即端口和 IP地址)信息;s o c k a d d r 类型的
13、指针与s o c k a d d r _ i n 类型的指针可以互换。S o c k a d d r _ i n类型定义如下:s t r u c t s o c k a d d r _ i n s h o r t i n t s i n _ f a m i l y;/地址族u n s i g n e d s h o r t i n t s i n _ p o r t;/端口号s t r u c t i n _ a d d r s i n _ a d d r;/I P 地址u n s i g n e d c h a r s i n _ z e r o 8;/填充0,以保持与s t r u c t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 Linux 系统 网络 编程 技术
限制150内