首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java (多网卡环境下)发送组播广播(multicastbroadcast)失败问题

经过反复测试,发现了规律,当电脑上有多块网卡(虚拟网卡也算)时,就有可能无法发出组播包数据,但自己可以收到自己发送的组播/广播包。 哇哦,原来与多网卡环境有关。...有了这个规律,再去百度发现不少关于多网卡环境下发送组播/广播包问题的文章,比如这个 《解决多网卡环境下使用特定网卡广播UDP消息的问题》 这篇文章开头的内容就给出了解决办法,如下图: ?...因为这个原因,对于多网卡环境下,发送广播或组播包就必须要指定用哪块网卡发送。...所以我的解决办法就是:遍历所有物理网卡,在每一块网卡上都把组播或广播数据发送一遍,接收组播包时将要明确将每一块物理网卡加入到组播地址中。...下面是我的实现代码片段: 发送组播或广播: /** * 向指定的组播或广播地址和端口发送组播数据 * @param group 组播或广播地址 * @param port 端口 * @

3.8K20

局域网通过端口通讯

() 关闭当前的Socket,通知驱动程序释放为这个Socket保留的资源 广播/多播(组播) 使用UDP协议进行信息的传输之前不需要建议连接。...对于多播,消息只是发送到一个多播地址,网络只是将数据分发给哪些表示想要接收发送到该多播地址的数据的主机。 总得来说,只有UDP套接字允许广播或多播。...UDP多播 同样的UDP多播也要指明接受者的端口号,而且与广播相似的是多播与单播之间的区别还在于地址。 ipv4中的多播地址范围是:224.0.0.0到239.255.255.255。...使用Java 的UDP进行多播,要分两步走,首先要加入到广播组地址,其次要建立套接字传输信息 关于多播,涉及到MulticastSocket,他用于接收广播的信息,前提是要将它加入到广播组, 组播的地址是保留的...b.length; i++) { res += (b[i] & 0xff) << (i * 8); } return res; } } 验证网卡是否加入多播组

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过UDP广播实现Android局域网Peer Discovering

    组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。...组播(multicast) “组播”这个词通常用来指代IP组播。IP组播是一种通过使用一个组播地址将数据在同一时间以高效的方式发往处于TCP/IP网络上的多个接收者的协议。...组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。在IPv4网络中,224.0.0.0到239.255.255.255属于多播地址。...在单播中,在网络位址和网络节点之间存在一一对应的关系。 在广播和组播中,在网络位址和网络节点之间存在一对多的关系:每一个目的位址对应一群接收可以复制资讯的节点。...不然无法在BROADCAST_PORT端口接收到DISCOVER_RESPONSE报文,新加入局域网的设备就无法感知其他设备的存在。

    2.6K40

    【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

    ; -- 多播地址 : 用于当作一组接口的标识符, 发送到多播地址的数据包被交付给由地址标识的所有接口; -- 回送地址 : 分配给回送接口的地址, 发送到回送地址的任何内容, 都将当作本地主机的IP输入...; -- 指定2部分 : d.d , 最后一部份是3个字节, 放在最右边的三个字节上; -- 指定1部分 : d , 直接存储在网络地址中, 字节不用重新排列; 多播地址范围 : IPv4 生存时间 (...地址列表组成的网络接口, 用于标识加入多播组的本地接口; 接口名称 "eth0", "wlan0" 等; 可以进行的操作 : 根据 IP地址 名称 硬件地址 获取网络接口, 判断网络接口类型, 判断网络接口状态...多播包; 特点 : MulticastSocket 是一种 DatagramSocket, 比一般的 DatagramSocket 多出一个功能, 具有加入Internet 上其它多播主机组的功能;...多播组指定 : 多播组通过 D 类 IP地址, 和 标准 UDP 端口号指定;

    79130

    Java网络编程之InetAddress类详解,URL和URI的区别,URLDecoder和URLEncoder,IPv6和IPv4区别,IPv6的三种表示方法

    其他: boolean isMulticastAddress():检查 InetAddress 是否为 IP 多播地址的实用程序例程。...IP v4多播地址是 D 类地址,即地址的前四位是 1110; IPv6地址开头的 11111111 将该地址标识为多播地址。...IPv6中加入了关于身份验证、数据一致性和保密性的内容。...IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。...与原来在IPv4地址相比,新增了“任播地址”类型,取消了原来IPv4地址中的广播地址,因为在IPv6中的广播功能是通过组播来完成的。 IPv6支持无状态自动地址配置,简化了地址配置过程。

    73220

    CVTE2017秋季校招一面回忆(C++后台岗)

    9.单播、多播和广播的区别 单播(Unicast)、多播(Multicast)和广播(Broadcast)这三个术语都是用来描述网络节点之间通讯方式。...(2)多播(组播) 主机之间一对一组的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。...主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。...这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。 组播的优点: 1)需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。...IP协议允许有2亿6千多万个组播,所以其提供的服务可以非常丰富。 3)此协议和单播协议一样允许在Internet宽带网上传输。

    1.2K20

    组播协议详解

    查询响应过程:路由器向 224.0.0.1(网内所有主机)发查询报文;接收到该报文的主机将自己加入的组播地址填入报告报文,向该组播地址多播;其他加入该组播组的主机收到该组播报文后,抑制自己报告报文的发送...(2) 指定组查询:用于获知邻接接口中跟某一个 IP 地址相关的多播接收状态。组地址字段含有需 要查询的那个组地址,源数量(N)字段为 0。...(3) 指定组和源查询:用于获知邻接接口是否需要接收来自指定的这些源发往指定组的多播数据报。组地址字段含有要查询的多播地址,源地址[i]字段含有相关的源地址。...PS:IGMP查询器:在网络中如果没有三层组播设备,将无法实现 IGMP 查询器的相关功能。...配置为查询器后,必须指定设备的一个地址为查询器地址,否则由于缺省源地址为 0.0.0.0 故无法发出 IGMP 组查询报文配置了 IP 地址的查询器会参加 VLAN 内 IGMP 查询者的选举,当选查询者负责维护

    63410

    Node js 开发入门 —UDP 编程,小白也能轻松学会

    IP 地址是所属局域子网中的广播地址,即位于该局域子网下的所有主机均能收到一份数据副本;多播:也称为组播,是将网络中属于同一业务类型的主机进行逻辑上的分组,信息收发仅发生在同一分组中,不在该分组的的主机无法收发对应的数据...udp6'); socket.bind(1234, () => { socket.setMulticastInterface('::%eth1'); }); 复制代码addMembership:在指定的接口上将指定的地址加入到一个不限源的多播组中...:多播接口,如未指定,将会从首个匹配的多播组中将指定的地址移除。...addSourceSpecificMembership:在指定的接口上加入一个特定于源的多播组(内部使用了套接字选项 IP_ADD_SOURCE_MEMBERSHIP),相关参数如下:sourceAddress...:源地址;groupAddress:多播组地址;multicastInterface:多播接口,如未指定,将会解除首个匹配的特定于源的多播组之间的成员关系。

    1.4K10

    “单播”、“组播”和“多播”

    当前的网络中有三种通讯模式:单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。...三、组播: 主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。...主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。...这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。 组播的优点: 1. 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。...IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。 3. 此协议和单播协议一样允许在Internet宽带网上传输。

    3.3K50

    c++ 网络编程(六)TCPIP LINUX下 socket编程 多播与广播 实现一次发送所有组客户端都能接收到

    其基本原理是这样的:有个多播组,只要加入这个组里的所有客服端,服务端发送的数据它们都能收到,具体传输到多播组里的每个客户是由路由完成的(如果路由器不支持多播或网络堵塞,实现多播也会使用隧道技术) 多播的数据传输特点如下...: 1,多播服务器端针对特定多播组,只需发送1次数据,该组内的所有所有客服端都能接收数据。...设置生存时间和加入多播组的方法 1,设置生存时间:只指服务端发送的数据包最远能传递的距离,用整数表示,并且每经过1个路由器就减1,当为0时,该数据包无法再被传递,只能销毁。...2,加入多播组:也是通过套接字可选项设置,示例代码中有使用方法,这里只介绍多播组的结构体ip_mreq。...但他们在网络范围上有区别,多播可以跨越不同的网络,只要加入了多播组就能接收数据。但广播只能向同一网络中的主机传输数据。

    3.9K70
    领券