- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章互联网广播与IP多播 - PowerPoint Presentation
Windows网络与通信程序设计 第五章 互联网广播和IP多播 长春大学 王士刚 主要内容 套接字选项 IO控制命令 广播通信 IP多播 实例 套接字选项 在Winsock中提供了套接字选项,以获取或者设置套接字操作的参数。 套接字选项是一些常数,他们定义在winsock.h中。 套接字选项分成三个级别:SOL_SOCKET级别、IPPROTO_TCP、IPPROTO_UDP、IPPROTO_IP级别。 每个级别下有具体的套接字选项,例如SOL_SOCK下有SO_ACCEPTCONN选项。 SOL_SOCKET级别下选项 IPPROTO_IP级别下选项 在IPPROTO_IP级别上的套接字选项与IP协议的属性相关,例如修改IP头的特定域,添加一个套接字到IP多播组等。 获取套接字选项 使用函数getsockopt获取选项内容 使用函数setsockopt设置选项内容 Demo 设置和获取套接字选项 I/O控制命令 I/O控制命令通过直接在套接字上执行相应命令来控制套接字的I/O行为。也可以获取套接字上的I/O信息。 控制命令分成两个版本,winsock1中使用ioctlsocket,winsock2中使用WSAIoctl。 I/O控制命令 Winsock2中改进了ioctlsocket函数,多了一些参数用来从调用中返回数据。 IO控制命令和含义 IP多播 多播地址 组管理协议IGMP 在不同的子网的两个工作站想加入一个多播组,通过IP如何实现? 为了支持跨子网IP多播,子网间所有路由器必须支持IGMP协议。 广播可以传送多远?TTL 如何维持组成员?发送组询问信息。 IP多播 编程实现 1 加入离开组 地址组结构 加入和离开地址组 2 接收广播数据 主机在接收IP多播数据之前,必须成为IP多播组的成员。 必须先绑定本地端口,在本地某一端口接收发送来的网络封包。 可使用SO_REUSEADDR选项使多个进程监听同一端口。 Demo 3 发送多播数据 要向组发送数据,没有必要非要加入那个组。可向组IP:端口发送数据即可。 应使用TTL限制多播范围 0限制在同一台主机 1限制在同一个子网 32限制在同一站点 64限制在同一地区 128限制在同一大陆 4 带源地址的IP多播 地址组结构 加入和离开地址组 Demo 基于IP多播的组讨论会实例 谢谢! * * 设置或获取超时时间(MS)。 INT SO_(RCV/SND)TIMEO 设置或获取接收或发送缓冲区大小。 INT SO_RCVBUF/SO_SNDBUF 设置或获取是否排除其他进程重复绑定到同一地址端口。 BOOL SO_EXCLUSIVEADDRUSE 获取或设置是否重复绑定到同一地址端口。 BOOL SO_REUSEADDR 设置或检查是否使用路由表路由发送封包。MS无效。 BOOL SO_DONTROUTE SO_BROADCAST SO_CONNNET_TIME INT BOOL 检查连接时间,如果没有连接返回0xFFFFFFFF。 获取或检查套接字是否广播。SOCK_STREAM不支持。 检查套接字是否进入监听状态。SOCK_DGRAM不支持。 BOOL SO_ACCETPCONN 类型 描述 选项 设置或获取IP头中的TTL信息。 INT IP_TTL 发送数据时是否包含IP头,如果否,则要自行处理IP头。 BOOL IP_HDRINCL 设置或获取IP头中的IP选项。 CHAR[] IP_OPTIONS 类型 描述 选项 int getsockopt( SOCKET s, int level, int optname, char* optval, int* optvallen ); int setsockopt( SOCKET s, int level, int optname, const char* optval, int* optvallen ); int ioctlsocket( SOCKET s, //套接字句柄 long cmd, //在套接字上执行的命令(long型常数) u_long* argp //指向cmd的参数。 ); Int WSAIoctl( SOCKET s, //套接字句柄 DWORD dwIoControlCode //在套接字上执行的命令(long型常数) LPVOID lpvInBuffer //指向输入缓冲区。 DOWRD cbInBuffer //输入缓冲区大小 LPVOID lpvOutBuffer //指向输出缓冲区 DOWRD cbOutBuffer //输出缓冲区大小 LPDWORD lpcbBytesReturn
文档评论(0)