Linux下套接字编程简介课件.ppt

Linux下套接字编程简介课件.ppt

ID:57058128

大小:333.00 KB

页数:32页

时间:2020-07-30

Linux下套接字编程简介课件.ppt_第1页
Linux下套接字编程简介课件.ppt_第2页
Linux下套接字编程简介课件.ppt_第3页
Linux下套接字编程简介课件.ppt_第4页
Linux下套接字编程简介课件.ppt_第5页
资源描述:

《Linux下套接字编程简介课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux网络编程第三单元套接字编程简介1第三单元套接字编程简介3.1套接字基础3.2套接字的类型3.3套接字地址结构3.4套接字基本函数3.5值结果参数23.1  套接字基础网络编程接口有两个发展方向Socket(BSD),TLI(SystemV)套接字是一种网络API,程序员可以用之开发网络程序。进程1进程2网络编程接口(socket)网络通信协议服务接口(TCP/IP)底层通信协议和网络介质3第三单元套接字编程简介3.1套接字基础3.2套接字的类型3.3套接字地址结构3.4套接字基本函数3.5值结果参数43.2

2、  套接字的类型套接字支持多种通信协议,如:Unix:Unix系统内部协议INET:IP版本4INET6:IP版本6Linux支持多种套接字类型,即应用程序希望的通信服务类型,常用的有:SOCKET_STREAM:双向可靠数据流,对应TCPSOCKET_DGRAM:双向不可靠数据报,对应UDPSOCKET_RAW:是低于传输层的低级协议或物理网络提供的套接字类型,可以访问内部网络接口。例如接收和发送ICMP包5第三单元套接字编程简介3.1套接字基础3.2套接字的类型3.3套接字地址结构3.4套接字基本函数3.5值结果

3、参数63.3  套接字地址结构3.3.1IPv4套接字地址结构3.3.2IPv6套接字地址结构3.3.3两种套接字地址结构的比较3.3.4通用套接字地址结构7套接字地址结构(IPv4)大多数套接字函数需要一个指向套接字地址结构的参数,每个协议族都定义它自己的套接字地址结构,一般以”sockaddr_”开头,并以协议簇为后缀。(netinet/in.h)typedefuint32_tin_addr_t;typedefuint16_tin_port_t;typedefunsignedshortsa_family_t;st

4、ructin_addr{in_addr_ts_addr;};structsockaddr_in{uint8_tsin_len;sa_family_tsin_family;in_port_tsin_port;structin_addrsin_addr;charsin_zero[8];};8套接字地址结构(IPv4)举例structsockaddr_inserver……bzero(&server,sizeof(server))server.sin_family=AF_INET;server.sin_port=htons(

5、PORT);server.sin_addr.s_addr=htonl(INADDR_ANY)…….9IPv6地址为128位。(netinet/in.h)套接字地址结构(IPv6)typedefuint16_tin_port_t;typedefunsignedshortsa_family_t;structin6_addr{uint8_ts6_addr[16];};structsockaddr_in6{uint8_tsin6_len;sa_family_tsin6_family;in_port_tsin6_port;ui

6、nt32_tsin6_flowinfo;structin6_addrsin6_addr;};10长度AF_INET616位端口号32位流标签128位IPv6地址sockaddr_in6{}长度AF_INET16位端口号32位IP地址未用sockaddr_in{}固定长度(16字节)固定长度(24字节)IPv4与IPv6地址结构比较11由于套接字函数需接收来自不同协议的地址结构,ANSI的办法是使用通用的指针类型,即(void*).套接字函数方法是定义一个通用的套接字地址结构。structsockaddr{uint8_

7、tsa_len;sa_family_tsa_family;charsa_data[14];};这就要求调用套接字函数时,需将指向特定于协议的地址结构的指针类型转换成指向通用的地址结构的指针,如:structsockaddr_inserv;bind(sockfd,(structsockaddr*)&serv,sizeof(serv));通用套接字地址结构12第三单元套接字编程简介3.1套接字基础3.2套接字的类型3.3套接字地址结构3.4套接字基本函数3.5值结果参数133.4  套接字基本

8、函数3.4.1字节排序函数3.4.2字节操纵函数3.4.3IP地址转换函数14字节顺序大于一个字节类型的数据在内存中的存放顺序Little-Endian小端,低位字节在内存低地址端,高位字节在内存高地址端。Intelx86,AMD64,DECVAXBig-Endian大端,高位字节在内存低地址端,低位字节在内存高地址端。SunSPARC,Mot

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

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

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