欢迎来到天天文库
浏览记录
ID:59568017
大小:266.00 KB
页数:83页
时间:2020-11-11
《Linux_Socket培训课件复习课程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux_Socket培训课件互联网的历史和发展1971年,ARPANET,使用NCP协议(NetworkControlProgram)1973年,放弃NCP协议,研究新协议1974年,发布TCP/IP协议和网关结构1981年,TCP/IPversion4标准确定ISO/OSI七层协议模型TCP/IP协议族TCP(TransmissionControlProtocol)传输控制协议,基于连接的服务UDP(UserDatagramProtocol)用户数据报协议,无连接的服务IP(InternetPro
2、tocol)Internet协议,信息传递机制OSI模型与TCP/IP协议的对比TCP或UDPIP和路由网卡驱动TelnetFTPWWW等消息传递流消息包的逐层递增TCP/IP编程应用Socket函数实现网络功能一些Socket编程的概念流(Stream)连接(Connection)阻塞(Block)、非阻塞(Non-block)同步(Synchronous)、异步(asynchronous)IP地址字节顺序IP地址IP地址是Internet中唯一的地址标识,IP地址是一个32位长(正在扩充到128位)
3、每个Internet包必须带有IP地址点分十进制表示法将IP地址的4个字节的数字用十进制表示并用点隔开,如:202.115.48.148(0xCA733094)IP地址的分级子网掩码(SubnetMask)四级IP地址子网掩码也用点分十进制表示例如:255.255.0.0指明子网(局域网)的范围Mask与IP地址进行与操作即可得出子网范围例如IP地址:202.115.32.1与202.115.32.45子网掩码:255.255.254.0即可得出这两个IP地址处于同一个子网内MAC地址MAC地址是
4、Ethernet协议使用的唯一地址MAC地址是EthernetNIC上自带的,48位长。如:00-88-D5-03-E7-A8MAC地址作用范围是Ethernet(局域网)内MAC地址存在于每一个Ethernet包中,是Ethernet包头的组成部分,Ethernet交换机根据Ethernet包头中的MAC源地址和MAC目的地址实现包的交换和传递MAC地址与IP地址无关字节顺序网络字节顺序(NBO,NetworkByteOrder)使用统一的字节顺序,避免兼容性问题主机字节顺序(HBO,HostByte
5、Order)不同的机器HBO不相同,与CPU设计有关Motorola68k系列,HBO与NBO相同Intelx86系列,HBO与NBO相反Socket函数介绍需要用到的头文件数据类型:#include函数定义:#includeBerkeleySocket常用函数列表网络连接函数获取/设置socket的参数或信息转换函数网络连接函数socketbindconnectlistenacceptselectrecv,recvfromsend,sendtocl
6、ose,shutdown获取/设置socket的参数或信息gethostbyaddr,gethostbynamegethostnamegetpeernamegetprotobyname,getprotobynumbergetservbyname,getservbyportgetsocknamegetsockopt,setsockoptioctl转换函数IP地址转换inet_addr()inet_ntoa()字节顺序转换htons()--"HosttoNetworkShort"htonl()--"Host
7、toNetworkLong"ntohs()--"NetworktoHostShort"ntohl()--"NetworktoHostLong"数据结构:sockaddrstructsockaddr{unsignedshortsa_family;/*addressfamily,AF_xxx*/charsa_data[14];/*14bytesofprotocoladdress*/};此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息数据结构:sockaddr_
8、instructsockaddr_in{shortintsin_family;/*Addressfamily*/unsignedshortintsin_port;/*Portnumber*/structin_addrsin_addr;/*Internetaddress*/unsignedcharsin_zero[8];/*Samesizeasstructsockaddr*/};该结构与sockaddr兼容,供用户填入参数数据结构:in_ad
此文档下载收益归作者所有