嵌入式Linux网络应用开发ppt课件.ppt

嵌入式Linux网络应用开发ppt课件.ppt

ID:59294344

大小:269.50 KB

页数:46页

时间:2020-09-20

嵌入式Linux网络应用开发ppt课件.ppt_第1页
嵌入式Linux网络应用开发ppt课件.ppt_第2页
嵌入式Linux网络应用开发ppt课件.ppt_第3页
嵌入式Linux网络应用开发ppt课件.ppt_第4页
嵌入式Linux网络应用开发ppt课件.ppt_第5页
资源描述:

《嵌入式Linux网络应用开发ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章 嵌入式Linux网络应用开发本章要点1、IP地址、端口号及网络套接字等概念2、利用套接字进行网络编程的方法3、编写客户机/服务器系统的应用程序4、编写嵌入式系统的Web服务器程序5、开发新的TCP通信协议7.1 网络编程基础知识7.1.1 IP地址和端口号1、客户端程序和服务端程序2、IP地址3、端口“端口号”标识正在计算机上运行的进程(程序)。端口号是一个整数,其取值范围为0~65535之间。4、TCP与UDP协议“传输控制协议”(TransmissionControlProtocol,简称TCP),“用户数据报协议”(Us

2、erDatagramProtocol,简称:UDP)。7.1.2 套接字1、什么是套接字在TCP/IP通信协议中,套接字(Socket)就是IP地址与端口号的组合。如图所示,IP地址193.14.26.7与端口号13组成一个套接字。2、套接字类型(1)字节流套接字,基于TCP协议的连接和传输方式,又称为TCP套接字。(2)数据报套接字,基于UDP协议的连接和传输方式,又称为UDP套接字。(3)原始套接字,原始套接字允许对底层协议如IP或ICMP进行直接访问,提供TCP套接字和UDP套接字所不提供的功能,主要用于对一些协议的开发,如构造

3、自己的TCP或UDP分组等。7.2.1 Socket网络函数1、socket函数调用socket函数获得一个套接字描述符。intsocket(intfamily,inttype,intprotocol);函数返回值:成功则返回套接字描述符,这是一个非负整数,若出错则返回-1。2、bind函数该函数为套接字描述符分配一个本地IP地址和一个端口号,将IP地址和端口号与套接字描述符绑定在一起。intbind(intsockfd,structsockaddr*myaddr,intaddrlen); 函数返回值:若调用成功则返回0,若出错则返回

4、-1。3、地址结构在网络编程中有二个很重要的数据类型,它们是地址结构structsockaddr和structsockaddr_in,这两个数据类型都是用来存放socket信息的。Structsockaddr的结构structsockaddr{    unsigned shortsa_family;/*通信协议类型族,AF_xxx*/    char sa_data[14];/*14字节协议地址,包含该socket的IP地址和端口号*/    };struct sockaddr_in数据结构:struct sockaddr_in{ 

5、  short intsin_family;/*通信协议类型族*/    unsigned short intsin_port;/*端口号*/    struct in_addr sin_addr;/*IP地址*/    unsigned char sin_zero[8];/*填充0以保持与sockaddr结构的长度相同*/  };4、connect函数该函数用于在客户端通过socket套接字建立网络连接。intconnect(intsockfd,conststructsockaddr*serv_addr,socklen_taddrl

6、en);  函数返回值:若连接成功则返回0,若连接失败则返回-1。5、listen函数listen函数应用于TCP连接的服务程序,它的作用是通过socket套接字等待来自客户端的连接请求。intlisten(intsockfd,intbacklog);   函数返回值:若连接成功则返回0,若连接失败则返回-1。6、accept函数accept调用后,服务器程序会一直处于阻塞状态,等待来自客户端的连接请求。intaccept(intsockfd,structsockaddr*cliaddr,socklen_t*addrlen);函数返回

7、值:若接收到客户端的连接请求,则返回非负的套接字描述符,若失败,则返回-1。7、send()和recv()函数这两个函数分别用于发送和接收数据。intsend(intsockfd,constvoid*msg,intlen,intflags);intrecv(intsockfd,void*buf,intlen,unsignedintflags);函数返回值:send函数返回发送的字节数,recv函数返回接收数据的字节数。若出错则返回-1。8、sendto()和recvfrom()函数这两个函数的作用与send()和recv()函数类似,

8、也是用于发送和接收数据。7.2.2 socket网络编程示例1、程序流程利用Socket方式进行数据通信与传输,有如下步骤:(1)创建服务端socket,绑定建立连接的端口。(2)服务端程序在一个端口处于阻塞状态,等待客

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。