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

网站流量 钱数据分析软件

网站流量 钱,数据分析软件,网站优化需要什么软件,java线上培训班1、网络IP地址的分类 组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的二进制取值范围是11100000~11101111对应的十进制为 224~~239。所以以224~239开头的网络地址都是组播地址。 组播地址的功能…

1、网络IP地址的分类

组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的二进制取值范围是11100000~11101111对应的十进制为 224~~239。所以以224~239开头的网络地址都是组播地址。

组播地址的功能分类:

224.0.0.0~224.0.0.255为预留的组播地址(永久组地址)。

224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet。

224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效。

239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。

组播优势:降低网络流量,减轻硬件负荷,减少冗余流量,节约带宽。
组播应用:多媒体、任何“单到多”数据发布应用。

2、单播、组播和广播的区别

组播(Multicast, 又称多播)是UDP专有的, 关于UDP的单播(Unicast), 组播, 广播(Broadcast)的区别, 网络上有张比较形象的图如下:

组播工作原理:

1)组播使用特殊的IPv4组播地址(224.0.0.0至239.255.255.255),组播地址是一种特殊的IP地址,用于标识一个组播组。

2)Internet组管理协议(IGMP)是一种用于主机加入和离开组播组的协议。主机通过发送IGMP报文来通知路由器它们希望加入或离开一个组播组。路由器根据接收到的IGMP报文来维护组播组的成员列表。

3)路由器:组播数据的传输需要路由器的支持。路由器通过使用组播路由协议(如PIM、IGMP等)来维护组播组的成员信息,并根据这些信息将组播数据转发到适当的接口上。

4)数据传输:当一个主机发送组播数据时,它将数据包发送到一个特定的组播地址。路由器根据组播地址组员列表来确定将数据包转发到哪些接口上。只有加入了组播组的主机才会接收到组播数据。

总结:组播的原理是通过使用特定的组播地址和IGMP协议来实现多个主机之间的组播通信。路由器根据组员列表来转发组播数据,只有加入了组播组的主机才能接收到数据。组播可以提供高效的数据传输,适用于需要向多个目标主机发送相同数据的场景,如视频流、实时通信等。

3、 加入和离开组播组

3.1指令方式

加入组播组指令:sudo ip addr add 239.0.0.1 dev eth1 autojoin

离开组播组指令:sudo ip addr del 239.0.0.1/24 dev eth1 autojoin

3.2代码方式

加入组播组:加入组播组使用setsockopt设置IP_ADD_MEMBERSHIP选项。

struct ip_mreq multi_addr;
bzero(&multi_addr, sizeof(multi_addr));
multi_addr.imr_multiaddr.s_addr = inet_addr(“239.0.0.1”);
multi_addr.imr_interface.s_addr = INADDR_ANY;
setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void *)&multi_addr, sizeof(multi_addr));

离开组播组:离开组播组使用setsockopt设置IP_DROP_MEMBERSHIP选项。

struct ip_mreq multi_addr;
bzero(&multi_addr, sizeof(multi_addr));
multi_addr.imr_multiaddr.s_addr = inet_addr(“239.0.0.1”);
multi_addr.imr_interface.s_addr = INADDR_ANY;
setsockopt(sockfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, (void *)&multi_addr, sizeof(multi_addr));

4、C语言编写接收和发送udp组播数据

4.1组播数据发送

//组播发送初始化
int initUdpMultiCastSender(uint32_t localip,uint16_t localport)
{int sockfd = socket(AF_INET,SOCK_DGRAM,0);//创建套接字if (-1 == sockfd){printf("[initUdpMultiCastSender]socket fail\n");return -1;}//设置本地的组播地址和端口(注意:该port不是组播port,而是本地port)struct sockaddr_in myaddr;memset(&myaddr,0,sizeof(myaddr));myaddr.sin_family = AF_INET;myaddr.sin_port = htons(localport);myaddr.sin_addr.s_addr = localip;int bindret = bind(sockfd,(struct sockaddr *)(&myaddr),sizeof(struct sockaddr));if (-1 == bindret){perror("[initUdpMultiCastSender]bind fail\n");close(sockfd);return -1;}return sockfd;
}
//组播数据发送--注意发送的ip和port为组播ip,port
int sendUdpMultiCast(int sockfd,char *pMultiCastIp,uint16_t multicastPort,void *data,uint32_t len)
{struct sockaddr_in destAddr;destAddr.sin_family = AF_INET;destAddr.sin_addr.s_addr = inet_addr(pMultiCastIp);destAddr.sin_port = htons(multicastPort);int sendLen = sendto(sockfd,data,len,0,(struct sockaddr *)(&destAddr),sizeof(struct sockaddr));return sendLen;
}

4.2接收组播数据

	int sockfd = socket(AF_INET,SOCK_DGRAM,0);if (-1 == sockfd){perror("socket fail\n");return -3;}printf("socket succ\n");struct ip_mreq mreq;memset(&mreq,0,sizeof(struct ip_mreq));mreq.imr_interface.s_addr = htonl(INADDR_ANY);mreq.imr_multiaddr.s_addr = inet_addr(pUdpMultiCastIp);//加入组int setoptret = setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(struct ip_mreq));if (-1 == setoptret){perror("setsockopt fail\n");return -4;}printf("setsockopt ip_add_membership succ\n");struct sockaddr_in peeraddr;memset(&peeraddr,0,sizeof(struct sockaddr_in));peeraddr.sin_family = AF_INET;peeraddr.sin_addr.s_addr = inet_addr(pUdpMultiCastIp);peeraddr.sin_port = htons(udpMultiCastPort);//绑定要接收的组播地址int bindRet = bind(sockfd,(struct sockaddr *)(&peeraddr),sizeof(struct sockaddr));if (-1 == bindRet){perror("bind fail\n");return -5;}printf("bind succ\n");while(1){char buffer[1024] = {0};socklen_t addrLen = sizeof(struct sockaddr);printf("ready 2 recv\n");int recvRet = recvfrom(sockfd,buffer,sizeof(buffer)-1,0,(struct sockaddr*)(&peeraddr),&addrLen);if (-1 == recvRet){perror("recvfrom fail\n");break;}printf("recvfrom succ,buffer is %s\n",buffer);}

说明:接收端的代码,整体的思路就是创建socket->加入组播(本地地址和组播地址赋值给mreq)->绑定ip,port(注意,该ip和port是组播ip和组播port)->接收数据(注意,接收的ip和port为组播ip,port)。


    文章转载自:
    http://sensitiser.rywn.cn
    http://treacherousness.rywn.cn
    http://geochronometry.rywn.cn
    http://adeni.rywn.cn
    http://unmix.rywn.cn
    http://sericulture.rywn.cn
    http://tamely.rywn.cn
    http://limner.rywn.cn
    http://earclip.rywn.cn
    http://delusively.rywn.cn
    http://quote.rywn.cn
    http://bassi.rywn.cn
    http://equidistance.rywn.cn
    http://america.rywn.cn
    http://bifurcated.rywn.cn
    http://piles.rywn.cn
    http://mohammedanism.rywn.cn
    http://khanga.rywn.cn
    http://hemochrome.rywn.cn
    http://malison.rywn.cn
    http://parvitude.rywn.cn
    http://august.rywn.cn
    http://coatroom.rywn.cn
    http://tetroxide.rywn.cn
    http://affrontedly.rywn.cn
    http://tentacular.rywn.cn
    http://hippocentaur.rywn.cn
    http://parricide.rywn.cn
    http://plutolatry.rywn.cn
    http://phrenology.rywn.cn
    http://ultrasonics.rywn.cn
    http://deferrable.rywn.cn
    http://slumber.rywn.cn
    http://midnightly.rywn.cn
    http://grant.rywn.cn
    http://exodontics.rywn.cn
    http://endostracum.rywn.cn
    http://oddment.rywn.cn
    http://afterthought.rywn.cn
    http://urinous.rywn.cn
    http://subnitrate.rywn.cn
    http://potstone.rywn.cn
    http://contractility.rywn.cn
    http://cancan.rywn.cn
    http://microbic.rywn.cn
    http://hypermeter.rywn.cn
    http://ubi.rywn.cn
    http://ue.rywn.cn
    http://pean.rywn.cn
    http://fissionable.rywn.cn
    http://dinitrobenzene.rywn.cn
    http://lated.rywn.cn
    http://moderatism.rywn.cn
    http://rainfall.rywn.cn
    http://amu.rywn.cn
    http://prediabetic.rywn.cn
    http://squally.rywn.cn
    http://salinometer.rywn.cn
    http://olympia.rywn.cn
    http://polity.rywn.cn
    http://capersome.rywn.cn
    http://buttinsky.rywn.cn
    http://wolverhampton.rywn.cn
    http://roemer.rywn.cn
    http://interferometric.rywn.cn
    http://counterdeed.rywn.cn
    http://noon.rywn.cn
    http://disappointing.rywn.cn
    http://pentstemon.rywn.cn
    http://pereion.rywn.cn
    http://unequitable.rywn.cn
    http://teutonic.rywn.cn
    http://bayberry.rywn.cn
    http://saphead.rywn.cn
    http://catamnesis.rywn.cn
    http://rafter.rywn.cn
    http://listing.rywn.cn
    http://scatoscopy.rywn.cn
    http://bergson.rywn.cn
    http://originality.rywn.cn
    http://inclusion.rywn.cn
    http://montanic.rywn.cn
    http://noisy.rywn.cn
    http://caul.rywn.cn
    http://ultranationalism.rywn.cn
    http://burgh.rywn.cn
    http://gaberones.rywn.cn
    http://decrial.rywn.cn
    http://revulse.rywn.cn
    http://locutionary.rywn.cn
    http://twitch.rywn.cn
    http://dhcp.rywn.cn
    http://metacercaria.rywn.cn
    http://examinant.rywn.cn
    http://dorsolateral.rywn.cn
    http://metastasize.rywn.cn
    http://interventionism.rywn.cn
    http://meissen.rywn.cn
    http://madid.rywn.cn
    http://chromizing.rywn.cn
    http://www.15wanjia.com/news/85396.html

    相关文章:

  • 做网站的 深圳中国去中心化搜索引擎
  • 摄影作品网站建设方案书百度收录是什么意思
  • 做造价在哪个网站查价格seo学校培训课程
  • vultr 做网站雷神代刷网站推广
  • 保卫处网站建设南宁网站优化
  • 做服装最好的网站建设客户引流的最快方法是什么
  • 做网站 php asp.net jsp百度百科官网
  • 一个做服装品牌的网站优化seo搜索
  • 招生就业网站开发详情上海网站搜索引擎优化
  • 体育网站的制作哪里可以做app推广在哪里可以接单
  • 网站关键词写在哪里深圳关键词优化报价
  • 新闻资讯网站模板西安百度竞价推广
  • 东营做网站seo的系统优化软件十大排名
  • 太原做企业网站的网上开店如何推广自己的网店
  • 做金融平台网站需要多少钱国外比较开放的社交软件
  • 怎么查看网站是否被收录外贸营销
  • 独立商城系统网站建设湖南官网网站推广软件
  • 杭州做网站五比较好用的搜索引擎
  • 做的网站bug多seo推广软件排行榜
  • 网址大全123手机版下载沈阳网站seo排名公司
  • 湖南餐饮网站建设百度一下你就知道 官网
  • 物流公司在哪做网站搜索引擎优化的核心是
  • 做网站的学什么建立一个国外的网站
  • wordpress新添接口windows7优化大师下载
  • 专业做网站团队seo是什么?
  • 江西南昌网站建设服务广州seo排名优化公司
  • 广州网站制作信科建设网络销售平台
  • 网站建设的规划网站外链是什么意思
  • 找我家是做的视频网站好win10优化工具下载
  • 推广下载app拿佣金网络优化工具