互联网络程序设计第2节.ppt

互联网络程序设计第2节.ppt

ID:52447429

大小:1.46 MB

页数:38页

时间:2020-04-07

互联网络程序设计第2节.ppt_第1页
互联网络程序设计第2节.ppt_第2页
互联网络程序设计第2节.ppt_第3页
互联网络程序设计第2节.ppt_第4页
互联网络程序设计第2节.ppt_第5页
资源描述:

《互联网络程序设计第2节.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二章、套接口编程基础套接口基本概念套接口地址结构字节序网络编程基本模型一些常用函数概述本章主要介绍网络编程的基本数据结构、字节序、网络编程的基本模型由于课时限制,SocketAPI的基本编程函数不集中讲述,将在本章和下一章中结合基本概念和编程讲述下一章,将结合简单的迭代服务器讲述套接口的基本函数1.套接字概念Unix、TCP/IP协议的发展Unix与BSDTCP/IP协议的实现以BSD为基础的协议编程接口——socketAPI成为网络编程的标准4.4BSD的协议栈中实现中了4种协议,不仅仅是TCP/IPTCP/IPXNS(已经删除)OSI/TLIUnix域B

2、SD协议栈结构SocketAPI是一个网络编程接口,并非一个协议层套接口除了操纵传输层外、还可以操纵网络层、数据链路层SocketAPI可以操纵多种协议栈:TCP/IP、Unix、TLI、XNS等协议栈的实现参考Richard.Stevens,TCP/IP详解卷2Linux下的实现在/usr/src/linux-source-2.6.32/net创建套接字的函数-socket要使用网络协议,首先要创建套接口(socket)mansocket什么是套接口?socket是一个文件描述符BSD的实现者,将网络协议的操作抽象成为文件的操作为什么要如此抽象?文件的读、写

3、等操作具有一般性除了socket抽象成为文件外,还有那些东西被抽象成为文件?目录设备epoll、kqueue…文件描述符的含义进程结构文件描述符表文件表文件结构socket结构文件操作函数表inpcb套接字类型套接字支持多种通信协议:Unix:Unix系统内部协议INET:IP版本4INET6:IP版本6套接字类型,即应用程序希望的通信服务类型SOCKET_STREAM:双向可靠数据流,对应TCPSOCKET_DGRAM:双向不可靠数据报,对应UDPSOCKET_RAW:是低于传输层的低级协议或物理网络提供的套接字类型,可以访问内部网络接口。Protocol?

4、/usr/include/bits/socket.h/usr/include/netinet/in.h2.网络地址结构网络的地址表示方式有哪些?IPv4域名,Dns点分十进制,192.168.1.1编程使用的结构IPv4地址定义:/usr/include/netinet/in.h/usr/include/bits/sockaddr.h/*Internetaddress.*/typedefuint32_tin_addr_t;structin_addr{in_addr_ts_addr;};#define__SOCKADDR_COMMON(sa_prefix)sa

5、_family_tsa_prefix##family/*sockaddr.h*//*StructuredescribinganInternetsocketaddress.*/structsockaddr_in{__SOCKADDR_COMMON(sin_);/*Socketfamily*/in_port_tsin_port;/*Portnumber.*/structin_addrsin_addr;/*Internetaddress.*//*Padtosizeof`structsockaddr'.8bytes*/unsignedcharsin_zero[size

6、of(structsockaddr)-__SOCKADDR_COMMON_SIZE-sizeof(in_port_t)-sizeof(structin_addr)];};/*16bytes*/Linux中的sockaddr_in定义与教材中稍有不同注意如下几个宏:/*Addresstoacceptanyincomingmessages.*/#defineINADDR_ANY((in_addr_t)0x00000000)/*Addresstosendtoallhosts.*/#defineINADDR_BROADCAST((in_addr_t)0xfffffff

7、f)/*Addressindicatinganerrorreturn.*/#defineINADDR_NONE((in_addr_t)0xffffffff)IPv6地址定义/*Ditto,forIPv6.*/structsockaddr_in6{__SOCKADDR_COMMON(sin6_);in_port_tsin6_port;/*Transportlayerport#*/uint32_tsin6_flowinfo;/*IPv6flowinformation*/structin6_addrsin6_addr;/*IPv6address*/uint32_ts

8、in6_scope_id;/*IPv6

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

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

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