欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章 基于TCP-IP协议的网络编程.ppt

    • 资源ID:70278709       资源大小:350KB        全文页数:116页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章 基于TCP-IP协议的网络编程.ppt

    第3章 基于TCP/IP协议的网络编程 建立建立Winsock规范的主要目的是提供规范的主要目的是提供一个与协议无关的传送接口。一个与协议无关的传送接口。本章介绍基于本章介绍基于TCP/IP协议的协议的Winsock网络编程技术,主要介绍网络编程技术,主要介绍TCP/IP协议的原协议的原理,理,Winsock基本概念与编程接口,基本概念与编程接口,Winsock API接口函数、数据结构及编程接口函数、数据结构及编程方法等。方法等。3.1 协议概述 TCP/IP是发展至今最成功的通信协是发展至今最成功的通信协议之一。它起源于议之一。它起源于20世纪世纪60年代末美国年代末美国政府资助的一个分组交换网络研究项目政府资助的一个分组交换网络研究项目ARPRANET,其目的是允许分布在各地,其目的是允许分布在各地的装着完全不同的操作系统的计算机互的装着完全不同的操作系统的计算机互相通信。相通信。TCP/IP以其开放性的特点,成以其开放性的特点,成为了为了INTERNET的基础。的基础。3.1 协议概述 TCP/IP协议是一个四层协议:协议是一个四层协议:vv链路层:链路层:ARP协议和协议和RARP协议协议vv网络层:网络层:IP协议、协议、ICMP协议、协议、IGMP协协议议vv传输层:传输层:TCP协议、协议、UDP协议协议vv应用层:应用层:Telnet、HTTP、SMTP、FTP等等3.1.1 IP协议 IP层作为通信子网的最高层,提供层作为通信子网的最高层,提供无连接的数据报传输机制。无连接的数据报传输机制。IPIP协议主要解决的问题:路由选择协议主要解决的问题:路由选择协议主要解决的问题:路由选择协议主要解决的问题:路由选择 IPIP层通过层通过层通过层通过IPIP数据报数据报数据报数据报和和和和IPIP地址地址地址地址屏蔽各种网络的屏蔽各种网络的屏蔽各种网络的屏蔽各种网络的低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上低层细节(如帧格式、地址格式等),为上层协议提供统一的格式层协议提供统一的格式层协议提供统一的格式层协议提供统一的格式l lIPIP数据报对物理帧的统一,数据报对物理帧的统一,数据报对物理帧的统一,数据报对物理帧的统一,IPIP数据报格式见数据报格式见数据报格式见数据报格式见6060页页页页l lIPIP地址对物理地址的统一地址对物理地址的统一地址对物理地址的统一地址对物理地址的统一3.1.2 传输层协议vvTCP/IP协议簇中在传输层有两个并列的协协议簇中在传输层有两个并列的协议:议:TCP和和UDP。TCPTCP提供面向连接的流传输;提供面向连接的流传输;提供面向连接的流传输;提供面向连接的流传输;UDPUDP提供无连接提供无连接提供无连接提供无连接数据报传输数据报传输数据报传输数据报传输 TCPTCP提供高可靠性服务;提供高可靠性服务;提供高可靠性服务;提供高可靠性服务;UDPUDP提供高效率服务提供高效率服务提供高效率服务提供高效率服务 TCPTCP用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;用于一次传输要交换大量报文的情形;UDPUDP用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可用于一次传输交换少量报文的情形,其可靠性由应用程序提供。具体选择取决于应用环靠性由应用程序提供。具体选择取决于应用环靠性由应用程序提供。具体选择取决于应用环靠性由应用程序提供。具体选择取决于应用环境和需求。境和需求。境和需求。境和需求。(1)TCP协议 TCP协议是建立在协议是建立在IP协议之上的,协议之上的,IP不提供任何可靠性机制,所以不提供任何可靠性机制,所以TCP可靠性可靠性完全由自己实现。完全由自己实现。(1 1)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接)数据传输前,通信双方必须建立一条连接(2 2)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收)数据传输过程中,每一个报文都需要接收端确认,未确认的报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,端确认,未确认的报文被认为是出错报文,发送方需要进行重传。发送方需要进行重传。发送方需要进行重传。发送方需要进行重传。TCPTCP采用最基本的可采用最基本的可采用最基本的可采用最基本的可靠性技术是:确认和重传。靠性技术是:确认和重传。靠性技术是:确认和重传。靠性技术是:确认和重传。(2)UDP协议 UDPUDP协议几乎直接建立在协议几乎直接建立在协议几乎直接建立在协议几乎直接建立在IPIP协议之上,相协议之上,相协议之上,相协议之上,相对于对于对于对于IPIP协议,它唯一增加的能力是提供协议端协议,它唯一增加的能力是提供协议端协议,它唯一增加的能力是提供协议端协议,它唯一增加的能力是提供协议端口(口(口(口(PortPort),以保证进程通信。),以保证进程通信。),以保证进程通信。),以保证进程通信。发送数据时,发送数据时,发送数据时,发送数据时,UDPUDP软件构造一个数据报,然后将它软件构造一个数据报,然后将它软件构造一个数据报,然后将它软件构造一个数据报,然后将它交给交给交给交给IPIP软件,便完成所有的工作软件,便完成所有的工作软件,便完成所有的工作软件,便完成所有的工作 接收数据时,接收数据时,接收数据时,接收数据时,UDPUDP软件先要判断所收到数据报的目软件先要判断所收到数据报的目软件先要判断所收到数据报的目软件先要判断所收到数据报的目的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则的端口是否与当前使用的某端口匹配,如果是,则将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,将数据报放入相应接收队列,否则抛弃该数据报,并向发送方发送并向发送方发送并向发送方发送并向发送方发送“端口不可到达端口不可到达端口不可到达端口不可到达”ICMPICMP报文报文报文报文3.2 地址 使用使用使用使用TCP/IPTCP/IP协议的互联网使用了协议的互联网使用了协议的互联网使用了协议的互联网使用了3 3个等级的个等级的个等级的个等级的地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:地址,分别对应在不同层上使用:物理地址(物理地址(物理地址(物理地址(MACMAC地址)地址)地址)地址)网络接口层网络接口层网络接口层网络接口层 逻辑地址(逻辑地址(逻辑地址(逻辑地址(IPIP地址)地址)地址)地址)网络层网络层网络层网络层 端口地址(端口地址(端口地址(端口地址(PORTPORT地址)地址)地址)地址)传输层传输层传输层传输层 IPIP地址屏蔽不同网络的物理地址差异,为上地址屏蔽不同网络的物理地址差异,为上地址屏蔽不同网络的物理地址差异,为上地址屏蔽不同网络的物理地址差异,为上层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考层提供了统一的地址格式,使设计者可以在不考虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。虑物理硬件细节的情况下自由地选择地址。3.2.1 物理地址与IP地址vv物理地址物理地址物理地址物理地址:包含在数据链路层使用的帧中,是最:包含在数据链路层使用的帧中,是最:包含在数据链路层使用的帧中,是最:包含在数据链路层使用的帧中,是最低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,低一级的地址,该地址的长度和格式是可变的,取决于网络种类。取决于网络种类。取决于网络种类。取决于网络种类。vvIPIP地址地址地址地址:IPIP地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一地址标识一台计算机和网络之间的一个连接。个连接。个连接。个连接。3232位位位位IPIP地址被分割为两个部分:地址被分割为两个部分:地址被分割为两个部分:地址被分割为两个部分:前缀(网络标识):确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络前缀(网络标识):确定计算机所从属的物理网络 后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机后缀(主机标识):确定网络上某一台计算机vv注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络注意:当网络设备从一个网络移动到另一个网络时,该设备的物理地址保持不变,但要相应地改时,该设备的物理地址保持不变,但要相应地改时,该设备的物理地址保持不变,但要相应地改时,该设备的物理地址保持不变,但要相应地改变它的变它的变它的变它的IPIP地址。地址。地址。地址。物理地址与IP地址的映射地址解析vv地址解析:就是将计算机的地址解析:就是将计算机的IP地址翻译地址翻译成物理地址,地址解析只能在本地网中成物理地址,地址解析只能在本地网中进行。进行。ARPARP协议:从协议:从协议:从协议:从IPIP地址到物理地址的映射地址到物理地址的映射地址到物理地址的映射地址到物理地址的映射 RAPRRAPR协议:从物理地址到协议:从物理地址到协议:从物理地址到协议:从物理地址到IPIP地址的映射地址的映射地址的映射地址的映射3.2.2 端口地址 若不同主机上的两个进程若不同主机上的两个进程A和和B进行进行通信,我们假定进程通信,我们假定进程A想要向进程想要向进程B发送发送数据,那么进程数据,那么进程A必须知道必须知道B进程的地址,进程的地址,这个地址包括:这个地址包括:网络地址(网络地址(网络地址(网络地址(IPIP地址)地址)地址)地址)端口号(端口号(端口号(端口号(Port NumberPort Number)每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由每个应用程序都必须有一个或多个端口号来接收由TCPTCP或或或或UDPUDP送来的数据送来的数据送来的数据送来的数据IPIP地址让地址让地址让地址让IPIP可将数据送至正确的主机可将数据送至正确的主机可将数据送至正确的主机可将数据送至正确的主机TCPTCP或或或或UDPUDP协议协议协议协议应用程序应用程序应用程序应用程序3 3应用程序应用程序应用程序应用程序2 2应用程序应用程序应用程序应用程序1 1应用程序应用程序应用程序应用程序n nPort 1Port nPort2Port3你的上网计算机Web网站POP3服务器(收信)SMTP服务器(发信)Windows计算机UnixLinux主机Port80Port110Port25Port139Port23TCP/IP协议(Protocol)Internet世界TCP/IP协议(Protocol)Windows系统Port80Port110Port25Port139Port23Port?IEOutlook Express资源管理器Telnet各种网络软件连接远程的各种服务器、主机或一般个人电脑 从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出从上图中可以看出,端口是电脑进出InternetInternet的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打的大门,任何一个应用程序都必须打开一个(或数个)门(端口)之后才能与开一个(或数个)门(端口)之后才能与开一个(或数个)门(端口)之后才能与开一个(或数个)门(端口)之后才能与InternetInternet世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也世界沟通,当任何一个程序退出时也必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。必须将所打开的端口全部关闭才行。定义:定义:端口用于标识通信主机中不同的端口用于标识通信主机中不同的通信进程,作为通信进程,作为UDPUDP和和TCPTCP数据报头的一数据报头的一部分传输。部分传输。各个通信进程通过系统调用与某些端口建各个通信进程通过系统调用与某些端口建各个通信进程通过系统调用与某些端口建各个通信进程通过系统调用与某些端口建立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相立绑定,传输层传送到该端口的所有数据相应地被与其绑定的进程接收。应地被与其绑定的进程接收。应地被与其绑定的进程接收。应地被与其绑定的进程接收。vv端口号(端口号(Port Number):):每个端口都是每个端口都是用端口号来标识的。在用端口号来标识的。在TCP和和UDP协议协议中,端口号是一个中,端口号是一个16位的整数值,即可位的整数值,即可以提供以提供65536(216)个端口。)个端口。注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可注意:端口和协议在进程通信中是密不可分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例分的,不同协议的端口之间没有任何联系。例如如如如TCPTCP和和和和UDPUDP协议的端口号相互独立的,若协议的端口号相互独立的,若协议的端口号相互独立的,若协议的端口号相互独立的,若TCPTCP有一个有一个有一个有一个10011001号端口,同样号端口,同样号端口,同样号端口,同样UDPUDP也可以有一也可以有一也可以有一也可以有一个个个个10011001号端口,它们并不冲突。号端口,它们并不冲突。号端口,它们并不冲突。号端口,它们并不冲突。vv端口号的分配问题:端口号的分配问题:TCP/IP将全部端口号将全部端口号分为保留端口号和自由端口号两部分。分为保留端口号和自由端口号两部分。保留端口号(保留端口号(保留端口号(保留端口号(1 110231023):以静态方式进行分:以静态方式进行分:以静态方式进行分:以静态方式进行分配,由配,由配,由配,由IANAIANA进行管理。进行管理。进行管理。进行管理。TCP TCP和和和和UDPUDP协议都规定,把协议都规定,把协议都规定,把协议都规定,把1 1255255之间之间之间之间的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应的端口号作为保留端口,对应一些通用的应用层协议(如下图);而用层协议(如下图);而用层协议(如下图);而用层协议(如下图);而25625610231023之间的端之间的端之间的端之间的端口通常由口通常由口通常由口通常由UNIXUNIX系统占用,提供一些特定的系统占用,提供一些特定的系统占用,提供一些特定的系统占用,提供一些特定的UNIXUNIX服务。服务。服务。服务。vv TCPTCP保留端口号举例保留端口号举例保留端口号举例保留端口号举例:端口端口2323端口端口说明说明端口端口2121FTPFTP文件下载上传服务文件下载上传服务TelnetTelnet主机连接服务主机连接服务端口端口2525SMTPSMTP发信服务发信服务端口端口8080HTTPHTTP网页服务网页服务端口端口110110POP3POP3收信服务收信服务端口端口139139NetBIOSNetBIOS网上邻居、资源管理器连接服务网上邻居、资源管理器连接服务自由端口(自由端口(自由端口(自由端口(102410246553565535):):):):占全部端口的绝占全部端口的绝占全部端口的绝占全部端口的绝大部分,以动态方式进行分配(即应用程序大部分,以动态方式进行分配(即应用程序大部分,以动态方式进行分配(即应用程序大部分,以动态方式进行分配(即应用程序根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进根据自己的需要向操作系统申请,由系统进行管理)行管理)行管理)行管理)这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,这样,当一个进程要与远地进程通信时,需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态需要先申请一个自由端口号,然后根据静态分配的保留端口号或双方协商好的端口号与分配的保留端口号或双方协商好的端口号与分配的保留端口号或双方协商好的端口号与分配的保留端口号或双方协商好的端口号与远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。远地进程建立连接,才能传输数据。3.3 客户机/服务器模式 在在TCP/IP网络应用中,通信的两个进网络应用中,通信的两个进程间相互作用的主要模式是客户机程间相互作用的主要模式是客户机/服务器服务器模式模式(Client/Server Model):服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程服务器是一个进程,它一直等待着客户进程的请求以便为客户进程服务;的请求以便为客户进程服务;的请求以便为客户进程服务;的请求以便为客户进程服务;客户进程向服务器提出请求,服务器对请求客户进程向服务器提出请求,服务器对请求客户进程向服务器提出请求,服务器对请求客户进程向服务器提出请求,服务器对请求做相应的处理并执行被请求的任务,然后将结果做相应的处理并执行被请求的任务,然后将结果做相应的处理并执行被请求的任务,然后将结果做相应的处理并执行被请求的任务,然后将结果返回给客户机。返回给客户机。返回给客户机。返回给客户机。客户机客户机/服务器模式的建立基于以下两点:服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软首先,建立网络的起因是网络中软首先,建立网络的起因是网络中软首先,建立网络的起因是网络中软/硬件资源、硬件资源、硬件资源、硬件资源、运算能力和信息不均等,需要共享,从而形成拥运算能力和信息不均等,需要共享,从而形成拥运算能力和信息不均等,需要共享,从而形成拥运算能力和信息不均等,需要共享,从而形成拥有众多资源的主机提供服务,资源较少的客户请有众多资源的主机提供服务,资源较少的客户请有众多资源的主机提供服务,资源较少的客户请有众多资源的主机提供服务,资源较少的客户请求服务这一非对称的情况。求服务这一非对称的情况。求服务这一非对称的情况。求服务这一非对称的情况。其次,网间进程通信完全是异步的,相互通其次,网间进程通信完全是异步的,相互通其次,网间进程通信完全是异步的,相互通其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓信的进程间既不存在父子关系,又不共享内存缓信的进程间既不存在父子关系,又不共享内存缓信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为需要通信的进程间建冲区,因此需要一种机制为需要通信的进程间建冲区,因此需要一种机制为需要通信的进程间建冲区,因此需要一种机制为需要通信的进程间建立联系,为二者的数据交换提供同步。立联系,为二者的数据交换提供同步。立联系,为二者的数据交换提供同步。立联系,为二者的数据交换提供同步。vv客户机客户机客户机客户机/服务器模型工作时要求有一套协议来保服务器模型工作时要求有一套协议来保服务器模型工作时要求有一套协议来保服务器模型工作时要求有一套协议来保证保证服务能够被提供,协议必须在通信的两端证保证服务能够被提供,协议必须在通信的两端证保证服务能够被提供,协议必须在通信的两端证保证服务能够被提供,协议必须在通信的两端客户机和服务器都被实现。客户机和服务器都被实现。客户机和服务器都被实现。客户机和服务器都被实现。vv根据实际情况,协议可以是对称的,也可以是非根据实际情况,协议可以是对称的,也可以是非根据实际情况,协议可以是对称的,也可以是非根据实际情况,协议可以是对称的,也可以是非对称的。对称的。对称的。对称的。对称的:每一方都有可能扮演主从角色。如对称的:每一方都有可能扮演主从角色。如对称的:每一方都有可能扮演主从角色。如对称的:每一方都有可能扮演主从角色。如InternetInternet中用于终端仿真的中用于终端仿真的中用于终端仿真的中用于终端仿真的TelnetTelnet 非对称的:一方不可改变地被认为是主机,而另一方非对称的:一方不可改变地被认为是主机,而另一方非对称的:一方不可改变地被认为是主机,而另一方非对称的:一方不可改变地被认为是主机,而另一方则是从机。如则是从机。如则是从机。如则是从机。如InternetInternet中的中的中的中的HTTPHTTP。vv客户机客户机/服务器模式的工作步骤:服务器模式的工作步骤:服务器进程开始执行,首先初始化本身,然后服务器进程开始执行,首先初始化本身,然后服务器进程开始执行,首先初始化本身,然后服务器进程开始执行,首先初始化本身,然后进入睡眠状态以等待客户进程的请求。通常是进入睡眠状态以等待客户进程的请求。通常是进入睡眠状态以等待客户进程的请求。通常是进入睡眠状态以等待客户进程的请求。通常是在一个众所周知的地址(如在一个众所周知的地址(如在一个众所周知的地址(如在一个众所周知的地址(如FTPFTP:2121)侦听客)侦听客)侦听客)侦听客户对服务的请求户对服务的请求户对服务的请求户对服务的请求 在本系统或与服务器相连的其他系统上,某一在本系统或与服务器相连的其他系统上,某一在本系统或与服务器相连的其他系统上,某一在本系统或与服务器相连的其他系统上,某一个客户进程开始执行,把请求发送给服务器进个客户进程开始执行,把请求发送给服务器进个客户进程开始执行,把请求发送给服务器进个客户进程开始执行,把请求发送给服务器进程请求服务程请求服务程请求服务程请求服务 服务器进程服务器进程服务器进程服务器进程“惊醒惊醒惊醒惊醒”并且为客户提供服务,作并且为客户提供服务,作并且为客户提供服务,作并且为客户提供服务,作出适当的反应。出适当的反应。出适当的反应。出适当的反应。vv从上面描述的过程可知:从上面描述的过程可知:客户机与服务器进程的作用是非对称的,因客户机与服务器进程的作用是非对称的,因客户机与服务器进程的作用是非对称的,因客户机与服务器进程的作用是非对称的,因此编码不同。此编码不同。此编码不同。此编码不同。服务进程一般是先于客户机请求而启动的,服务进程一般是先于客户机请求而启动的,服务进程一般是先于客户机请求而启动的,服务进程一般是先于客户机请求而启动的,只要系统运行,该服务进程一直存在,直到只要系统运行,该服务进程一直存在,直到只要系统运行,该服务进程一直存在,直到只要系统运行,该服务进程一直存在,直到正常终止或强迫终止。正常终止或强迫终止。正常终止或强迫终止。正常终止或强迫终止。3.4 Winsock介绍vv套接字(套接字(套接字(套接字(SocketSocket)的来源:最早被用于的来源:最早被用于的来源:最早被用于的来源:最早被用于Berkeley Berkeley Software Software Distribution(BSDDistribution(BSD)的的的的UNIXUNIX系统中,系统中,系统中,系统中,随着随着随着随着UNIXUNIX的广泛使用,的广泛使用,的广泛使用,的广泛使用,SocketSocket成为最通用的成为最通用的成为最通用的成为最通用的网络设计接口。网络设计接口。网络设计接口。网络设计接口。3.4.1 socket的来源vvWindows Windows SocketsSockets:WinsockWinsock程序接口,它定义程序接口,它定义程序接口,它定义程序接口,它定义了一套可使网络程序开发人员在了一套可使网络程序开发人员在了一套可使网络程序开发人员在了一套可使网络程序开发人员在WindowsWindows环境环境环境环境下开发标准下开发标准下开发标准下开发标准TCP/IPTCP/IP网络程序。网络程序。网络程序。网络程序。WinsockWinsock继承了继承了继承了继承了Berkeley SocketBerkeley Socket的主要特征,同时的主要特征,同时的主要特征,同时的主要特征,同时进行了重要扩充,有利于程序员开发出符合进行了重要扩充,有利于程序员开发出符合进行了重要扩充,有利于程序员开发出符合进行了重要扩充,有利于程序员开发出符合WindowsWindows编程模式的软件。编程模式的软件。编程模式的软件。编程模式的软件。WinsockWinsock接口包含了一组网络接口包含了一组网络接口包含了一组网络接口包含了一组网络I/OI/O和获取网络信息的和获取网络信息的和获取网络信息的和获取网络信息的库函数,网络程序通过调用这部分函数实现自己的库函数,网络程序通过调用这部分函数实现自己的库函数,网络程序通过调用这部分函数实现自己的库函数,网络程序通过调用这部分函数实现自己的功能:功能:功能:功能:l lWinsock1.1Winsock1.1的库函数在的库函数在的库函数在的库函数在Winsock.dllWinsock.dll动态链接库动态链接库动态链接库动态链接库l lWinsock2.0Winsock2.0的库函数在的库函数在的库函数在的库函数在Ws2_32.dllWs2_32.dll动态链接库动态链接库动态链接库动态链接库 WinsockWinsock定义了如何使用定义了如何使用定义了如何使用定义了如何使用APIAPI与与与与InternetInternet通讯协议通讯协议通讯协议通讯协议(TCP/IPTCP/IP协议)的连接:应用程序调用协议)的连接:应用程序调用协议)的连接:应用程序调用协议)的连接:应用程序调用WinsockWinsock的的的的APIAPI实现相互之间的通信,而实现相互之间的通信,而实现相互之间的通信,而实现相互之间的通信,而WinsockWinsock则利用下层的则利用下层的则利用下层的则利用下层的网络通信协议功能与操作系统调用实现实际的通信网络通信协议功能与操作系统调用实现实际的通信网络通信协议功能与操作系统调用实现实际的通信网络通信协议功能与操作系统调用实现实际的通信工作。它们之间的关系如图:工作。它们之间的关系如图:工作。它们之间的关系如图:工作。它们之间的关系如图:应用程序应用程序1应用程序应用程序2应用程序应用程序N网络编程接口(网络编程接口(Winsock)网络通信服务接口(网络通信服务接口(TCP/IP)操作系统(操作系统(Windows)硬件接口(网卡)硬件接口(网卡)3.4.2 Winsock的基本概念(1)套接字()套接字(Socket)SocketSocket是通信的基石,是支持是通信的基石,是支持是通信的基石,是支持是通信的基石,是支持TCP/IPTCP/IP协议网协议网协议网协议网络通信的基本操作单元。络通信的基本操作单元。络通信的基本操作单元。络通信的基本操作单元。一个一个一个一个SocketSocket就是一个通信的端点,用以一个就是一个通信的端点,用以一个就是一个通信的端点,用以一个就是一个通信的端点,用以一个短整数来表示。短整数来表示。短整数来表示。短整数来表示。注意:注意:注意:注意:SocketSocket不是端口号,它只是一个句柄,代不是端口号,它只是一个句柄,代不是端口号,它只是一个句柄,代不是端口号,它只是一个句柄,代表网络协议中的一组数据,这组数据包括表网络协议中的一组数据,这组数据包括表网络协议中的一组数据,这组数据包括表网络协议中的一组数据,这组数据包括TCPTCP连连连连接中双方的接中双方的接中双方的接中双方的IPIP地址以及目前连接状况等。地址以及目前连接状况等。地址以及目前连接状况等。地址以及目前连接状况等。一个正在被使用的一个正在被使用的一个正在被使用的一个正在被使用的SocketSocket都有它的类型和与其相关的网络都有它的类型和与其相关的网络都有它的类型和与其相关的网络都有它的类型和与其相关的网络应用进程。应用进程。应用进程。应用进程。根据通信性质,根据通信性质,根据通信性质,根据通信性质,SocketSocket可以分为两类:可以分为两类:可以分为两类:可以分为两类:l lStream SocketStream Socket(会话套接字)会话套接字)会话套接字)会话套接字):使用:使用:使用:使用TCPTCP协议,提供协议,提供协议,提供协议,提供一种面向连接的可靠数据通信方式。当要发送大批量数一种面向连接的可靠数据通信方式。当要发送大批量数一种面向连接的可靠数据通信方式。当要发送大批量数一种面向连接的可靠数据通信方式。当要发送大批量数据或想让发出的数据按顺序无重复地到达目的地时,就据或想让发出的数据按顺序无重复地到达目的地时,就据或想让发出的数据按顺序无重复地到达目的地时,就据或想让发出的数据按顺序无重复地到达目的地时,就要使用会话套接字,但需要很多开销。要使用会话套接字,但需要很多开销。要使用会话套接字,但需要很多开销。要使用会话套接字,但需要很多开销。l lDatagram SocketDatagram Socket(数据报套接字)数据报套接字)数据报套接字)数据报套接字):使用:使用:使用:使用UDPUDP协议,协议,协议,协议,提供不可靠的、非连接的数据通信方式,具有向多个目提供不可靠的、非连接的数据通信方式,具有向多个目提供不可靠的、非连接的数据通信方式,具有向多个目提供不可靠的、非连接的数据通信方式,具有向多个目标地址发送广播数据报的能力,由于其并不十分可靠,标地址发送广播数据报的能力,由于其并不十分可靠,标地址发送广播数据报的能力,由于其并不十分可靠,标地址发送广播数据报的能力,由于其并不十分可靠,需要应用程序负责管理数据报的排序和可靠性。需要应用程序负责管理数据报的排序和可靠性。需要应用程序负责管理数据报的排序和可靠性。需要应用程序负责管理数据报的排序和可靠性。总之,若要用总之,若要用总之,若要用总之,若要用TCPTCP协议那协议那协议那协议那SocketSocket就必须设为就必须设为就必须设为就必须设为StreamStream,反之,用反之,用反之,用反之,用UDPUDP就设为就设为就设为就设为DatagramDatagram。3.4.2 Winsock的基本概念(2)广播)广播 使用数据报套接字可以向网络发送广播数使用数据报套接字可以向网络发送广播数使用数据报套接字可以向网络发送广播数使用数据报套接字可以向网络发送广播数据。据。据。据。TCP/IPTCP/IP协议支持一个标记地址协议支持一个标记地址协议支持一个标记地址协议支持一个标记地址INADDR_BROADCASTINADDR_BROADCAST用于广播用于广播用于广播用于广播。广播通常应用于两种情况广播通常应用于两种情况广播通常应用于两种情况广播通常应用于两种情况:一是应用程序希望在本地网络中找到一个资一是应用程序希望在本地网络中找到一个资一是应用程序希望在本地网络中找到一个资一是应用程序希望在本地网络中找到一个资源,而事先不知道该资源的地址源,而事先不知道该资源的地址源,而事先不知道该资源的地址源,而事先不知道该资源的地址 一些重要的信息需要发送给网中所有计算机一些重要的信息需要发送给网中所有计算机一些重要的信息需要发送给网中所有计算机一些重要的信息需要发送给网中所有计算机3.4.2 Winsock的基本概念(3)字节顺序)字节顺序 计算机世界主要采用两种字节顺序来存储数据:计算机世界主要采用两种字节顺序来存储数据:计算机世界主要采用两种字节顺序来存储数据:计算机世界主要采用两种字节顺序来存储数据:“Litter-Litter-EndianEndian”位顺序位顺序位顺序位顺序:是指一个字(:是指一个字(:是指一个字(:是指一个字(WordWord)在内在内在内在内存中的排列方式是低字节在高字节之前,通常也称作存中的排列方式是低字节在高字节之前,通常也称作存中的排列方式是低字节在高字节之前,通常也称作存中的排列方式是低字节在高字节之前,通常也称作低字节顺序、主机字节顺序低字节顺序、主机字节顺序低字节顺序、主机字节顺序低字节顺序、主机字节顺序。例如,例如,例如,例如,IntelIntel处理器的字节顺序就是处理器的字节顺序就是处理器的字节顺序就是处理器的字节顺序就是“Litter-Litter-EndianEndian”。“Big-Big-EndianEndian”位顺序位顺序位顺序位顺序:则是高字节在前,而低字节:则是高字节在前,而低字节:则是高字节在前,而低字节:则是高字节在前,而低字节在后,通常也称作在后,通常也称作在后,通常也称作在后,通常也称作高字节顺序、网络字节顺序高字节顺序、网络字节顺序高字节顺序、网络字节顺序高字节顺序、网络字节顺序。例如,例如,例如,例如,InternetInternet网络的字节顺序就是网络的字节顺序就是网络的字节顺序就是网络的字节顺序就是“Big-Big-EndianEndian”。vv任何任何任何任何WindsockWindsock函数对函数对函数对函数对IPIP地址和端口号的使用以地址和端口号的使用以地址和端口号的使用以地址和端口号的使用以及传送给及传送给及传送给及传送给WinsockWinsock函数的函数的函数的函数的IPIP地址和端口号均是地址和端口号均是地址和端口号均是地址和端口号均是按照按照按照按照“Big-Big-EndianEndian”(网络字节)网络字节)网络字节)网络字节)顺序组织的。顺序组织的。顺序组织的。顺序组织的。vvIntelIntel处理器和处理器和处理器和处理器和InternetInternet网络的字节顺序不同,网络的字节顺序不同,网络的字节顺序不同,网络的字节顺序不同,因此两种顺序的转换是无法避免的,例如:因此两种顺序的转换是无法避免的,例如:因此两种顺序的转换是无法避免的,例如:因此两种顺序的转换是无法避免的,例如:情况一:当用户输入一个数值,而且指定使用该数值情况一:当用户输入一个数值,而且指定使用该数值情况一:当用户输入一个数值,而且指定使用该数值情况一:当用户输入一个数值,而且指定使用该数值作为端口号(此时该数值的存储是采用主机字节顺作为端口号(此时该数值的存储是采用主机字节顺作为端口号(此时该数值的存储是采用主机字节顺作为端口号(此时该数值的存储是采用主机字节顺序),那么应用程序则必须在使用它创建序),那么应用程序则必须在使用它创建序),那么应用程序则必须在使用它创建序),那么应用程序则必须在使用它创建SocketSocket地地地地址之前,把它从主机字节顺序转换成网络字节顺序,址之前,把它从主机字节顺序转换成网络字节顺序,址之前,把它从主机字节顺序转换成网络字节顺序,址之前,把它从主机字节顺序转换成网络字节顺序,这一过程用这一过程用这一过程用这一过程用htonshtons()()函数实现;函数实现;函数实现;函数实现;情况二:反之,如果应用程序希望显示包含于某一地情况二:反之,如果应用程序希望显示包含于某一地

    注意事项

    本文(第3章 基于TCP-IP协议的网络编程.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开