VC 第6章 接字编程.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC 第6章 接字编程

;;6.1.1 OSI参考模型;6.1.2 IP地址;6.1.3 地址解析;(2)如果主机A在ARP缓存中没有发现192.168.1.23映射的物理地址,将发送ARP请求帧到本地网络上的所有主机,在ARP请求帧中包含了主机A的物理地址和IP地址。 (3)本地网络上的其他主机接收到ARP请求帧后,检查是否与自己的IP地址匹配,如果不匹配,则丢弃ARP请求帧。如果主机B发现与自己的IP地址匹配,则将主机A的物理地址和IP地址添加到自己的ARP缓存中,然后主机B将自己的物理地址和IP地址发送到主机A,当主机A接收到主机B发来的信息,将以这些信息更新ARP缓存。 (4)当主机B的物理地址确定后,主机A即可与主机B通信。;6.1.4 域名系统;6.1.5 TCP/IP协议; 从表中可以发现,TCP/IP协议不是单个协议,而是一个协议簇,它包含有多种协议,其中主要的协议有网际协议(IP)和传输控制协议(TCP)等。下面介绍TCP/IP主要协议的结构。 1.TCP协议 传输控制协议TCP是一种提供可靠数据传输的通信协议,它是TCP/IP体系结构中传输层上的协议。在发送数据时,应用层的数据传输到传输层,加上TCP的首部,数据就构成了报文。报文是网络层IP的数据,如果再加上IP首部,就构成了IP数据报 2.IP协议 IP协议又称为网际协议。它工作在网络层,主要提供无链接数据报传输。IP协议不保证数据报的发送,但最大限度地发送数据。 3.ICMP协议 ICMP协议又称为网际控制报文协议,负责网络上设备状态的发送和报文检查,可以将某个设备的故障信息发送到其他设备上。 ;4.UDP协议 用户数据报协议UDP是一个面向无链接的协议,采用该协议,两个应用程序不需要先建立链接,它为应用程序提供一次性的数据传输服务。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性略差。UDP协议C语言数据描述如下: typedef struct HeadUDP { WORD SourcePort; //16位源端口号 WORD DePort; //16位目的端口 WORD Len; //16为UDP长度 WORD ChkSum; //16位UDP校验和 } HEADUDP;;6.1.6 端口;; 所谓套接字,实际上是一个指向传输提供者的句柄。在WinSock中,就是通过操作该句柄来实现网络通信和管理的。根据性质和作用的不同,套接字可以分为3种,分别为原始套接字、流式套接字和数据包套接字。原始套接字是在WinSock?2规范中提出的,它能够使程序开发人员对底层的网络传输机制进行控制,在原始套接字下接收的数据中包含有IP头;流式套接字提供了双向、有序、可靠的数据传输服务,该类型套接字在通信前,需要双方建立连接,大家熟悉的TCP协议采用的就是流式套接字;与流式套接字对应的是数据包套接字,数据包套接字提供双向的数据流,但是它不能保证数据传输的可靠性、有序性和无重复性,UDP协议采用的就是数据包套接字。; 不同的计算机结构有时使用不同的字节顺序存储数据。例如,基于 Intel 的计算机存储数据的顺序与Macintosh(Motorola)计算机相反。通常,用户不必为在网络上发送和接收的数据的字节顺序转换担心,但在有些情况下必须转换字节顺序。例如,程序中将指定的整数设置为套接字的端口号,在绑定端口号之前,必须将端口号从主机顺序转换为网络顺序,有关转换的函数将在6.3节中进行介绍。; 套接字的I/O(Input/Output)模式有两种,分别为阻塞模式和非阻塞模式。在阻塞模式下,在I/O操作完成之前,套接字函数会一直等待下去,函数调用后不会立即返回。默认情况下,套接字为阻塞模式。而在非阻塞模式下,套接字函数在调用后会立刻返回。程序中可以使用ioctlsocket函数来设置套接字的I/O模式,有关该函数的介绍参见6.3节。; 套接字程序包含通信的两端。这两端可称为服务器端和客户机端。两端各建立一个套接字对象。 面向连接的通信方法中,通信前,首先服务器端套接字启动监听(listen),然后由客户机端套接字发出连接请求(Connect),服务器端触发Accept事件,接受连接请求,并在服务器端再建立一个客户套接字对象,用于接收客户机端发送的数据。这样两个实体间要实现通信,至少需要三个套接字对象。 如果象QQ那样,实现多点间的通信。那么可以有一个服务器,多个客户机端,服务器中有一个监听套接字,每个客户机端各有一个客户套接字,当一个客户机端向服务器发送连接请求后,服务器端接受连接请求(Accept),并在服务器端再建立一个客户套接字对象,用于和客户机端实现通信。这样有n个客户机端,服务器

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档