您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Visual_C++网络编程技术-05
网络会议室授课教师:网络编程——网络编程技术导入网络会议室与聊天室程序类似,其本质就是一种多点群发的的通信方式。在电子教室软件的实际应用过程中,经常需要组织分小组进行讨论,这时就需要建立几个组群,每个组内可以发起讨论,交流意见,这就是网络会议室应用程序。本章的网络会议室功能虽与上一章的聊天室类似,但采用的是一种更好的实现方法——IP多播技术。网络编程技术本章要点网络会议室功能分析设计IP广播技术IP多播技术网络编程技术功能需求分析网络会议室需要有以下主要功能:用户可以选择参加某个会议用户可以在会议上发表言论,并且用户的发言会即时传递给每个参加会议的人用户可以随时看到参加会议的其他人的发言用户可以随时选择退出会议。需要时,还可以再加入进来。网络编程技术界面设计窗体标题窗体标题请选择要参加的会议:第一会议室:网络未来展望进入会议室离开会议室关闭目前,网络应用已经非常广泛了通讯网络的发展将会使世界成为一个大的政治、社会和经济圈,来自世界各地的人们可以通过互联网相识,定期进行面对面的语音和视频交流。会议交流内容:超过半数的受调查者对互联网的发展持乐观态度发送网络编程技术关键技术分析根据参与一次通信的对象的多少,可将通信分为两大类:一类是点对点通信,也称其为单播通信,TCP协议仅支持这种单播通信方式一类是多点通信,也称为群或组通信,UDP协议既支持单播通信方式,又支持多点通信方式。本章研究内容是组通信网络编程技术广播通信所谓广播是指一种同时与网络中所有主机进行交互数据的通信方式,传输者通过一次数据传输就可以使网络上的所有主机接收到这个数据信息。广播通信的主要用途是资源发现和减少网络数据流量。用于指示网络中所有主机的地址称为广播地址。广播地址有直接地址和有限地址之分。直接广播地址适合于向一个指定网络(已知网络号)发送数据包的情况,若不知道网络号,又要向本地网络发送广播数据包,就需要使用有限广播地址255.255.255.255。网络编程技术核心程序——IP广播一个IP广播程序分成两个部分,一个是广播端,一个是接收端。广播流程:初始化WinSock创建socket设置套接字广播功能设置有限广播地址发送端发送广播数据关闭socket终止Winsock网络编程技术广播端界面网络编程技术关键代码设置套接字广播功能setsockopt(SendSocket,SOL_SOCKET,SO_BROADCAST,(charFAR*)&op,sizeof(op));设置有限广播地址Addr.sin_addr.s_addr=inet_addr(255.255.255.255);网络编程技术代码详解——Setsockopt()函数setsockopt()函数用于任意类型、任意状态套接字的设置选项值,选项影响套接字的操作。intPASCALFARsetsockopt(SOCKETs,intlevel,intoptname,constcharFAR*optval,intoptlen);参数s:要设置的套接字对象。参数level:选项定义的层次,如SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP等。参数optname:需设置的选项。参数optval:指针,指向存放选项值的缓冲区。参数optlen:optval缓冲区的长度。SOL_SOCKET级别对应的参数optname选项值如果是SO_BROADCAST,则代表允许套接字接收和发送广播消息网络编程技术接收广播信息端界面网络编程技术IP多播的网络会议室多播是指一种同时与多台主机进行交互数据的通信方式,传输者通过一次传输就将数据信息传送给一组接收者。与广播不同的是多播只向事先规划好的多播组(由多台主机组成)发送数据,而不是向某个网络的所有主机发送数据。多播组是零个或多个使用同一IP目的地址的主机集合,其成员在位置上和数量上均没有任何限制。多播不局限于局域网,也可用于广域网。网络编程技术多播地址IP地址空间被划分为A、B、C三类。第四类即D类地址被保留用做多播地址。从224.0.0.0到239.255.255.255间的所有IP地址都属于D类地址多播地址的范围是224.0.0.0~239.255.255.255网络编程技术IP多播的网络会议室首先我们设计了三个网络会议室,它们的多播地址分别是“238.8.8.18”、“238.8.8.19”和“238.8.8.20”。用户可以选择进入哪个会议室(多播组)参与讨论。凡是多播组成员都可以向全组发送数据信息,且都可以看到本组成员发送的数据信息。每个成员都可以随时离开这个多播组,也可以再次加入进来。网络编程技术程序界面网络编程技术头文件和库文件#includewinsock2.h#includeWS2tcpip.h#pragmacomment(lib,ws2_32.lib)网络编程技术加入和退出多播组加入多播组代码:setsockopt(recvSocket,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mq,sizeof(mq));退出多播组代码:setsockopt(recvSocket,IPPROTO_IP,IP_DROP_MEMBERSHIP,(char*)&mq,sizeof(mq));两条代码的差别在第三个参数上。当参数level的值是IPPROTO_IP时,对应的参数optname值为IP_ADD_MEMBERSHIP表示加入多播组,IP_DROP_MEMBERSHIP表示退出多播组。网络编程技术本章技能训练实例局域网广播报时系统该程序分成两个部分,一个是发送时间数据程序,一个是接收时间程序。发送端程序取本机的系统时间,然后以广播通信的方式发送给本网络上的所有主机,接收端程序接收到广播的时间数据,并在界面上显示该时间。
本文标题:Visual_C++网络编程技术-05
链接地址:https://www.777doc.com/doc-3395830 .html