当前位置: 首页 > news >正文

网站交互图片怎么做的建设厅质监总站网站

网站交互图片怎么做的,建设厅质监总站网站,建站设计,组织架构及营销网络怎么填写目录 1. 多播 1.1 多播的使用情形 1.2 多播的原理 1.3 如何实现多播 1.4 多播的代码实现 2. 广播 2.1 广播与多播的区别 2.2 广播的分类 2.3 实现广播 1. 多播 1.1 多播的使用情形 考虑一种情形#xff0c;你要向10000名用户发送数据#xff0c;此时如果用TCP提供服…目录 1. 多播 1.1 多播的使用情形 1.2 多播的原理 1.3 如何实现多播 1.4 多播的代码实现 2. 广播 2.1 广播与多播的区别 2.2 广播的分类 2.3 实现广播 1. 多播 1.1 多播的使用情形 考虑一种情形你要向10000名用户发送数据此时如果用TCP提供服务则需要维护10000个套接字连接如果用UDP提供服务则也需要进行10000次数据传输。像这样在这总情况下就可以使用多播技术来解决问题。所以一般多播常用于多媒体数据的实时传输。 1.2 多播的原理 多播是基于UDP协议传输的。但又与UDP有一些不同不同之处在于UDP数据传输是以单一目标进行的而多播则会将数据同时传递到加入(注册)多播组的大量主机。 其中多播组是一种D类IP地址(224.0.0.0~239.255.255.255)加入多播组可以理解为在D类IP地址中我希望接收发往目标239.255.255.255的多播数据。 其原理如图 多播数据包的格式与UDP数据包相同但多播数据包在传输过程中时路由器会复制该多播数据包并传递到多个主机。由此主机只需要发送一次数据包多个主机就能接受到而无需一个数据包发多次。不像UDP或TCPn个主机要接受数据包就得传输n次。 1.3 如何实现多播 实现多播需要 1.传递数据包的主机需要设置TTL(Time to Live生存时间)TTL是决定数据包传送距离的主要因素TTL用整数表示每经过一个路由器就减1直到TTL变为0时数据包就无法再传输只能销毁。因此TTL的值设置过大会影响网络流量但过小就无法传递到目标。 2.接收数据包的主机需要加入多播组。 上述两个条件的设置用套接字可选项来完成。 条件协议层可选项设置TTLIPPROTO_IPIP_MULTICAST_TTL加入多播组IPPROTO_IPIP_ADD_MEMBERSHIP 1.4 多播的代码实现 设置TTL int time_to_live64; setsockopt(senderfd,IPPROTO_IP,IP_MULTICAST_TTL,(void*)time_to_live,sizeof(time_to_live); 加入多播组: ip_mreq join_adr; join_adr.imr_multiaddrinet_addr(要加入的多播组IP地址); join_adr.imr_interfacehtonl(加入该组的套接字所属主机的IP地址);setsockopt(recvfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(void*)join_adr,sizeof(join_adr)); struct ip_mreq {struct in_addr imr_multiaddr; //要加入的多播组IP地址struct in_addr imr_interface; //加入该组套接字所属主机IP } 其中imr_interface可以用INADDR_ANY。 Sender #includeiostream #includecstring #includesys/socket.h #includeunistd.h #includearpa/inet.hint main() {int senderfdsocket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);if(senderfd-1){std::coutsocket fail!std::endl;}int ttl64;int ressetsockopt(senderfd,IPPROTO_IP,IP_MULTICAST_TTL,(void*)ttl,sizeof(ttl));if(res-1){std::coutsetsockopt fail!std::endl;}std::string strIp;std::cout请输入要发往的多播IP地址:;std::cinstrIp;sockaddr_in senderAddr;senderAddr.sin_familyAF_INET;senderAddr.sin_addr.s_addrinet_addr(strIp.c_str());senderAddr.sin_porthtons(9130);std::cout请输入你要发送的内容:;char buff[1024];std::cinbuff;int sendLen;sendto(senderfd,buff,sizeof(buff),0,(sockaddr*)senderAddr,sizeof(senderAddr));close(senderfd);return 0; } Recv #includeiostream #includecstring #includesys/socket.h #includeunistd.h #includearpa/inet.hint main() {int recvSocket socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);if (recvSocket -1){std::cout socket fail! std::endl;}sockaddr_in recvAddr;recvAddr.sin_family AF_INET;recvAddr.sin_addr.s_addr htonl(INADDR_ANY);recvAddr.sin_port htons(9130);if (-1 bind(recvSocket, (sockaddr*)recvAddr, sizeof(recvAddr))){std::cout bind fail! std::endl;}std::string strIp;std::cout 请输入要加入的多播IP地址:;std::cin strIp;ip_mreq join_adr;join_adr.imr_multiaddr.s_addr inet_addr(strIp.c_str());join_adr.imr_interface.s_addr htonl(INADDR_ANY);int ressetsockopt(recvSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*)join_adr, sizeof(join_adr));if (res -1){std::cout setsockopt fail! std::endl;}char buff[1024];recvfrom(recvSocket, buff, sizeof(buff), 0, NULL, 0); //因为此套接字是已连接UDP套接字所以无需再进行绑定std::cout 接收到的多播信息: buff std::endl;close(recvSocket);return 0; }运行结果 Sender Recv 注意 1.发送方和接收方的端口号要一致。 2.在这里接收方要先于发送方运行因为多播属于广播的范畴如果接收方延后则会接收不到信息。 3.Windows里设置TTL需要加上头文件#includews2tcpip.h因为IP_MULTICAST_TTL声明在这个头文件里。 2. 广播 2.1 广播与多播的区别 广播与多播的唯一区别是广播只能向同一网络中的主机传输数据而多播是可以跨越不同网络只要加入多播组就能接收到数据的。 2.2 广播的分类 广播分为直接广播、本地广播。 两者之间的差别主要是在于IP地址。 直接广播的IP地址除了网络地址外其余主机地址全部设置为1,。例如希望向网络地址为192.12.32中的所有主机传输数据则可以向192.12.32.255传输。换言之直接广播就是可以向特定区域内所有主机传输数据。 本地广播的IP地址限定为255.255.255.255。例如位于192.32.24网络中的主机向255.255.255.255传递数据时数据将传递到这个网路中的所有主机上。换言之本地广播就是只能向本地网络区域内所有主机传输数据。 2.3 实现广播 广播的实现需要 协议层套接字可选项值SOL_SOCKETSO_BROADCAST0【关闭】/1【开启】 int bcast1; setsockopt(send_sock,SOL_SOCKET,SO_BROADCAST,(void*)bcast,sizeof(bcast)); 广播的代码实现和多播没有什么区别只需要把上述代码里套接字可选项改为SO_BROADCAST即可然后在运行时输入指定的IP地址直接广播输入xxx.xxx.xxx.255本地广播输入255.255.255.255即可。
http://www.hkea.cn/news/14520236/

相关文章:

  • 安徽做手机网站北滘企业网站开发
  • 泊头市网站建设怎么把网站做的小程序
  • 做网站的收获及感想找个网站
  • 新建网站费用网站推广技巧有哪些?
  • 网站建设需要的图片怎么弄福州做网站多少钱
  • 越秀区建网站的公司烟台优化网站建设
  • 哪家专门做特卖的网站?怎么在互联网做网站
  • 高端网站设计找哪个公司学校做网站方案
  • 三原网站建设网上推广营销
  • 香洲区建设局网站wordpress全屏单页
  • 做网站买计划书深圳网站建设哪家公司好
  • 湘潭学校网站建设 磐石网络第一网站建设毕业设计中期进度报告
  • 重庆大渡口营销型网站建设公司哪家专业seo排名谁教的好
  • 建设互联网站企业网站收费
  • 郑州网站优化公司平台ecxl表格数据导入wordpress
  • 企业展示网站案例网销具体怎么做网站
  • 网站icp深圳网络推广公司
  • 网站上放百度地图网站制作公司信科网络
  • 广州网站建设培训做网站需要学些什么软件
  • 怎么做一个国外网站wordpress程序
  • 天津市建设公司网站wordpress是怎么实现自定义链接
  • 公司网站开发联系方式珠海市城市建设档案馆网站
  • 网站建设方面的优劣势分析上海注册公司详细流程
  • 从网址怎么看网站的域名免飞网站
  • 网站建设属于商标哪个类网站开发要
  • 雅安市建设工程招投标网站优化方案英语答案
  • 自己如何做网站建设什么网站可以请人做软件下载
  • 酒店网站建设栏目分析wordpress主页一直载入中
  • 做网站模版wordpress显示不同的页脚
  • 做网站哪便宜中国空间站设计在轨飞行几年