C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?

问题描述

C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?
C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?另外,一台计算机上(不经过路由器或交换机)只能有一个组播吗?急求!!!

解决方案

组播地址和多播地支的关系与TCP中IP和端口的关系不太一样。

首先,网卡查看由信道传送过来的帧,确定是否接收该帧,若接收后就将它传往设备驱动程序。通常网卡仅接收那些目的地址为网卡物理地址或广播地址的帧。

使用广播的问题在于它增加了对广播数据不感兴趣主机的处理负荷。拿一个使用UDP广播应用作为例子。如果网内有50个主机,但仅有20个参与该应用,每次这20个主机中的一个发送UDP广播数据时,其余30个主机不得不处理这些广播数据报。一直到UDP层,收到的UDP广播数据报才会被丢弃。这30个主机丢弃UDP广播数据报是因为这些主机没有使用这个目的端口。

多播的出现减少了对应用不感兴趣主机的处理负荷。使用多播,主机可加入一个或多个多播组。这样,网卡将获悉该主机属于哪个多播组,然后仅接收主机所在多播组的那些多播帧。

组播号的过滤实在底层(通常有网卡驱动程序)完成,而端口号的过滤是在网络层完成的。

时间: 2024-11-01 23:40:22

C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?的相关文章

环信编程大赛优秀开源项目源码放出:文播+图忆

 根据IDC数据显示,中国有近200万开发者,身为一个程序员,我们生活在一个IT系统越发复杂且多变化的时代.有时候执行一个简单的开源项目,开发一个基础功能都需要精准定义并耗费大量时间专注任务.随着云计算的兴起,API和SDK开始作为软件之间重要媒介而作为一种独立应用而存在,"一切皆软件,一切皆API,一切皆SDK".通过API和SDK可以让开发者摆脱繁重的基础功能底层开发,短时间即可让App拥有各种诸如内置IM.统计等基础功能组件能力.       5月14日,由环信联合猿圈共同推出的

Java中List和Map的特性对两组大批量数据进行匹配

  在项目中遇到一个问题:要将通过http方式发送过来的大批量数据(这个数据保守估计每次请求在10万条左右),要和数据库中的另一批数据(数据库中的记录1万条左右)进行匹配(匹配:指两组数据中的某几个字段值相等),匹配上的数据保存在数据库中,匹配不上的直接扔掉.或者说:有一个List<String> strList,List<Person> personList,strNoList.size是1万,personList.size是10万, 然后要从personList中把person

UDP套接口编程

常用的UDP实现的程序:DNS域名系统,NFS网络文件系统,SNMP简单网络管理协议 ssize_t recvfrom(int sockfd,void *buff,size_t nbytes,int flags,struct sockaddr * from,socklen_t *addrlen); ssize_t sendto(int sockfd,void *buff,size_t nbytes,int flags,struct sockaddr * to,socklen_t addrlen)

分类群组将优先向用户推荐同城的优质活跃群组

据微米团队介绍,"分类群组"将优先向用户推荐同城的优质活跃群组,引导用户发现和丰富自己的社交空缺,推荐榜单根据后台数据定时刷新,以便给用户带来更多的新鲜感.同时,这也将会给辛苦维护群组内容的群主和管理员们带来一定的激励,进一步提升他们的使用积极性. 提升内容发布质量 网页版同步上线 为了配合客户端的更新,微米网页版(http://web.weimi.me)也同步上线.微米网页版整合了 "单聊"."群聊"."动态"."

java后台用REST 接口创建群组时报异常为什么环信还成功创建了群组?

问题描述 java后台用REST 接口创建群组时报异常为什么环信还成功创建了群组? 解决方案 出现什么异常?  贴出来看下

编程c语言-vs2013中如何定义一个结构体该结构体定义一个结构体数组 结构体数组中包含一个链表

问题描述 vs2013中如何定义一个结构体该结构体定义一个结构体数组 结构体数组中包含一个链表 这样定义对么 编译时报错 缺少:在*前面 这是哪错了啊 请高手指点指点 解决方案 你把两个结构体的定义调换一下次序就没问题啦,要先声明或定义结构体:Station,才能使用 解决方案二: 因为struct Station是在struct Train结构体之后才定义的,所以你要在这之前先声明一下struct Train 解决方案三: 做一个前向声明,或者调换两个结构位置都可以. 解决方案四: 结构体数组

网络编程-关于TCP中的【backlog】疑问

问题描述 关于TCP中的[backlog]疑问 <TCP/IP详解卷1 协议>第2版中写道: Linux% sock -s -v -q1 -O30000 6666 The -q1 option sets the backlog of the listening endpoint to 1.The -O30000 option causes the program to sleep for 30,000s(basically a long time,about 8 hours) before a

《Linux高性能服务器编程》——1.7 socket和TCP/IP协议族的关系

1.7 socket和TCP/IP协议族的关系 前文提到,数据链路层.网络层.传输层协议是在内核中实现的.因此操作系统需要实现一组系统调用,使得应用程序能够访问这些协议提供的服务.实现这组系统调用的API(Application Programming Interface,应用程序编程接口)主要有两套:socket和XTI.XTI现在基本不再使用,本书仅讨论socket.图1-1显示了socket与TCP/IP协议族的关系. 由socket定义的这一组API提供如下两点功能:一是将应用程序数据从

急!!!!!!!!!!!C++中关于strcat()函数占用其他变量内存地址的问题?

问题描述 急!!!!!!!!!!!C++中关于strcat()函数占用其他变量内存地址的问题? 源代码有点长,我就只贴关键部分了! int main(){ /省略部分代码..../ LinearList *L=(LinearList *)malloc(sizeof(LinearList)); InitList(LMAX); while(1){ printf(""Input file:""); gets(filename); //用get函数避免scanf以空格分割数