08_网络基础和SOCKET

08_网络基础和SOCKET

ID:41539587

大小:542.00 KB

页数:18页

时间:2019-08-27

08_网络基础和SOCKET_第1页
08_网络基础和SOCKET_第2页
08_网络基础和SOCKET_第3页
08_网络基础和SOCKET_第4页
08_网络基础和SOCKET_第5页
资源描述:

《08_网络基础和SOCKET》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章 网络基础和SOCKET本章目标了解TCP/IP协议族了解TCP和UDP协议的优缺点掌握TCP三次握手掌握SOCKETTCP通信过程中SOCKETAPI函数调用次序掌握SOCKETUDP通信过程中SOCKETAPI函数调用次序远程通信的基础通信双方双方共同约定和遵循的协议A机B机约定/协议异地进程通信协议层为双方的主机上通信进程分配“端口”和缓冲区,以便异地进程间的通信协议层:类似于物流公司端口:类似于物流公司两地的加盟点缓冲区:类似于加盟点的囤放货物平台想象下我们如何发送货物给对方呢?TCP/IP协议概述TCP/IP是互联网的基础OSI参考模型与TCP/IP参

2、考模型应用层表示层会话层传输层网络层数据链路层物理层应用层传输层网络层网络接口层OSI参考模型TCP/IP参考模型图1OSI参考模型与TCP/IP参考模型对应关系图2OSI参考模型与TCP/IP参考模型对应关系TCP/IP协议族TCP/IP实际上是一个一起工作的通信家族,为网际数据通信提供通路。为讨论方便可将TCP/IP协议组大体上分为三部分:1.Internet协议(IP)2.传输控制协议(TCP)和用户数据报文协议(UDP)3.处于TCP和UDP之上的一组协议专门开发的应用程序。它们包括:TELNET,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(

3、SMTP)等许多协议。应用层协议:Telnet文件传送协议(FTP和TFTP)简单的文件传送协议(SMTP)域名服务(DNS)等协议。应用层协议网络编程基础socket概述为了简化开发通信程序的工作,由Berkely学校开发了一套网络通信程序的API函数标准socket标准被扩展成windowsocket和unixsocketlinux中的网络编程通过socket接口实现。Socket既是一种特殊的IO,它也是一种文件描述符。一个完整的Socket都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口};每一个Socket有一个本地的唯一Socket号,由操作系

4、统分配。流式套接字(SOCK_STREAM)流式的套接字可以提供可靠的、面向连接的通讯流。它使用了TCP协议。TCP保证了数据传输的正确性和顺序性。数据报套接字(SOCK_DGRAM)数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。原始套接字。原始套接字允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议实现的测试等。SOCKET分类套接字地址结构structsockaddr{unsignedshortsa_family;/*address族,AF_xxx*/charsa_data[

5、14];/*14bytes的协议地址*/};sa_family一般来说,IPV4使用“AF_INET”。sa_data包含了一些远程电脑的地址、端口和套接字的数目,它里面的数据是杂溶在一起的。sockaddr_in地址结构structsockaddr_in{shortintsin_family;/*Internet地址族*/unsignedshortintsin_port;/*端口号*/structin_addrsin_addr;/*Internet地址*/unsignedcharsin_zero[8];/*添0(和structsockaddr一样大小)*/};这两个数

6、据类型是等效的,可以相互转换,通常使用sockaddr_in更为方便字节序列转换因为每一个机器内部对变量的字节存储顺序不同(有的系统是高位在前,底位在后,而有的系统是底位在前,高位在后),而网络传输的数据大家是一定要统一顺序的。所以对与内部字节表示顺序和网络字节顺序不同的机器,就一定要对数据进行转换。htons()——“HosttoNetworkShort”主机字节顺序转换为网络字节顺序(对无符号短型进行操作2bytes)htonl()——“HosttoNetworkLong”主机字节顺序转换为网络字节顺序(对无符号长型进行操作4bytes)ntohs()——“Netw

7、orktoHostShort”网络字节顺序转换为主机字节顺序(对无符号短型进行操作2bytes)ntohl()——“NetworktoHostLong”网络字节顺序转换为主机字节顺序(对无符号长型进行操作4bytes)字节转换函数地址格式转换linux提供将点分格式的地址转于长整型数之间的转换函数。inet_addr()能够把一个用数字和点表示IP地址的字符串转换成一个无符号长整型。inet_ntoa()inet_aton()基本套接字调用socket()bind()connect()listen()accept()send()recv(

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

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

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