软件开发实习讲义-基于C-S模式的软件开发(题目1).pptVIP

软件开发实习讲义-基于C-S模式的软件开发(题目1).ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * UDP Socket编程 有连接的udp socket 断开有连接的udp socket udp socket允许对一个socket多次调用connect函数,每次调用connect函数将释放原来绑定的地址,绑定到新地址 利用connect函数绑定一个特殊地址可以断开之前的udp连接 struct sockaddr_in addr; …….. addr.sin_family=AF_UNSPEC; ……. connect(sockfd,(struct sockaddr *)addr,sizeof(addr)); UDP Socket编程 使用UDP Socket的说明 UDP协议不保证数据报可靠到达 用超时和重发机制处理丢失的数据报 用数据报序列号区分重复数据报 UDP协议不保证数据报顺序到达 UDP协议没有流量控制 可以由程序维护一个发送缓冲区,将数据报保存在该缓冲区,直到收到确认才清除,当用户缓冲区满时不再发送数据报 原始socket编程 概述 TCP和UDP Socket对TCP和UDP协议做了封装,简化了编程接口,但失去了对IP数据包操作的灵活性 原始socket直接针对IP数据包编程,具有更强的灵活性,能够访问ICMP和IGMP数据包 可以编写基于IP协议的高层协议 原始socket编程 创建原始socket int socket (int family, int type, int protocol) 参数: family-AF_INET type-SOCK_RAW protocol IPPROTO_ICMP-ICMP数据包 IPPROTO_IGMP-IGMP数据包 IPPROTO_IP-IP数据包 原始socket编程 设置IP选项 是否自动填充IP首部 on=0,由协议自动填充 on=1,用户程序填充 int on=1; setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,on,sizeof(on) 原始socket编程 绑定本地IP地址 使用bind函数绑定本地IP地址 发送的IP数据包的源地址就是bind绑定的地址 不调用bind函数时将以主网络接口IP地址为源地址 如果设置了IP选项IP_HDRINCL,bind函数将不起作用,必须手工填充每个IP数据包的源地址 原始socket编程 绑定对方IP地址 使用connect函数绑定对方地址 发送的IP数据包目的地址就是connect绑定的对方地址 用connect绑定对方地址后可以使用函数write和send发送IP数据包 不调用connect函数,每次发送IP数据包必须使用sendto函数指定对方IP地址 原始socket编程 发送数据包 没有调用connect函数绑定对方地址时必须用sendto或sendmsg发送数据包;调用connect绑定对方IP地址之后可以使用write、send发送数据包 没有设置IP_HDRINCL选项时只能填充IP数据包的数据区;设置了IP_HDRINCL选项后可以填充IP数据包首部和数据区,但内核总是计算和填充校验和 原始socket编程 接收数据包 UDP和TCP数据包不传送到原始socket 大多数ICMP数据包(echo响应,timestamp响应,mask响应)的拷贝将传递给匹配的原始socket 其他类型的数据包的拷贝传递给匹配的原始socket 内核不能识别的IP数据包将传送给匹配的原始socket 原始socket编程 原始socket接收过程 IP协议 ICMP协议 ICMP类型原始socket 其他原始socket ICMP数据包 内核不处理的协议数据包 原始socket编程 原始socket编程示例 PING程序:ICMP协议版本 ping程序原理 ping程序发送ICMP应答请求数据包,数据区中包含发送时间 对方主机回送ICMP应答响应数据包,数据区内容保持不变 ping程序受到ICMP应答响应数据包,将数据区内的发送时间和当前时间比较,得到时间差,即ICMP数据包的往返时间 原始socket编程 原始socket编程示例 ICMP数据包格式 类型:8-echo request,0-echo response 校验和:采用IP校验和计算方法 标识符:进程号 序列号:从0开始,依次加1 类型(8/0) 代码(0) 校验和 标识符 序列号 数据(时间戳) 原始socket

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档