Java单播、广播、多播(组播)

Bugku中的source 进入环境后 我们首先查看源码可以得到一个flag 这肯定是个假的(已经提交过了确实是个假的) 题目提示要用Linux 这里使用的是kali 我们首先dirsearch一下这个网站 可以看到有.git文件泄露 也可以点开那个链接但是在里面没有找到flag 然后选择下载这个.git文件 然后进入这个文件夹 输入git reflog查看文件状态 可以看到有四个都有flag is here 一个一个查看git show 然后在40c6d51中发现了我们需要的fl 阅读详情

一、通信方式分类

  在当前的网络通信中有三种通信模式:单播、广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点。

  • 单播:单台主机与单台主机之间的通信
  • 广播:当台主机与网络中的所有主机通信
  • 多播:当台主机与选定的一组主机的通信

 

二、单播  

单播是网络通信中最常见的,网络节点之间的通信 就好像是人们之间的对话一样。如果一个人对另外一个人说话,

那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。

1. 单播的优点:

(1)服务器以及响应客户端的请求;

(2)服务器能针对每个客户端的不同请求发送不同的响应,容易显示个性化服务;

2. 单播的缺点:

服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负;

3. 应用场景:

单播在网络中得到了广泛的应用,网络上绝大部分的数据都 是以单播的形式传输的。例如:收发电子邮件、游览网页时,必须与邮件服务器、网站服务器建立连接,此时使用的就是单播通信方式;

 

三、广播

“广播”可以比方为:一个人通过广播喇叭对在场的全体说话(他才不管你是否乐意听)。换句话说: 广播是一台主机对某一个网络上的所有主机发送数据报包。这个网络可能是网络,也可能是子网,还有可能是所有子网。

广播有两类:本地广播和定向广播

  • 定向广播:将数据报包发送到本网络之外的特定网络的所有主机,然而,由于互联网上的大部分路由器都不转发定向广播消息,所以这里不深入介绍了
  • 本地广播:将数据报包发送到本地网络的所有主机,IPv4的本地广播地址为“255.255.255.255”,路由器不会转发此广播;

1.广播的优点:

(1)通信的效率高,信息一下子就可以传递到某一个网络上的所有主机。

(2)由于服务器不用向每个客户端单独发送数据,所以服务器流量比较负载低;

2.广播的缺点:

(1)非常占用网络的带宽;

(2)缺乏针对性,也不管主机是否真的需要接收该数据, 就强制的接收数据;

3.应用场景:

(1)有线电视就是典型的广播型网络

  Java广播示例:

  客户端发送程序  

//发送端程序
public class BroadcastTest
{
    public static void main(String[] args)
    {
        //广播的实现 :由客户端发出广播,服务器端接收
        String host = "255.255.255.255";//广播地址
        int port = 9999;//广播的目的端口
        String message = "test";//用于发送的字符串
        try
        {
            InetAddress adds = InetAddress.getByName(host);
            DatagramSocket ds = new DatagramSocket();
            DatagramPacket dp = new DatagramPacket(message.getBytes(),message.length(), adds, port);
            ds.send(dp);
            ds.close();
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }
    }
}

  服务器端接收程序

//服务器端接收程序
public class BroadcastServer
{
     public static void main(String[] args) 
     {
            int port = 9999;//开启监听的端口
            DatagramSocket ds = null;
            DatagramPacket dp = null;
            byte[] buf = new byte[1024];//存储发来的消息
            StringBuffer sbuf = new StringBuffer();
            try 
            {
                //绑定端口的
                ds = new DatagramSocket(port);
                dp = new DatagramPacket(buf, buf.length);
                System.out.println("监听广播端口打开:");
                ds.receive(dp);
                ds.close();
                int i;
                for(i=0;i<1024;i++)
                {
                    if(buf[i] == 0)
                    {
                        break;
                    }
                    sbuf.append((char) buf[i]);
                }           
                System.out.println("收到广播消息:" + sbuf.toString());
            }
            catch (Exception e) 
            {
                e.printStackTrace();
            } 
        }
}

四、多播(组播)

  ”组播“可以比方为:你对着大街喊:”是男人的来一下,一人发一百块”,那么男的过来,女就不会过来,因为没有钱发她不理你(组播:其中所有的男生就是一个组),换句话说: 组播是一台主机向指定的一组主机发送数据报包,因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的,又会占用网络带宽。采用组播方式,既可以实现一次传送所

有目标节点的数据,也可以达到只对特定对象传送数据的目的。

IP网络的组播一般通过组播IP地址来实现。组播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。

1.组播的优点:

(1)具备广播所具备的所有优点;

(2)与单播相比,提供了发送数据报包的效率,与广播相比,减少了网络流量;

2.组播的缺点:

(1)与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补;

  组播的简单示例:

  客户端发送消息

//发送端程序
public class SendUdp
{
    public static void main(String[] args) throws IOException
    {
        MulticastSocket ms=null; 
        DatagramPacket dataPacket = null; 
        ms = new MulticastSocket();
        ms.setTimeToLive(32);  
        //将本机的IP(这里可以写动态获取的IP)地址放到数据包里,其实server端接收到数据包后也能获取到发包方的IP的  
         byte[] data = "组播 测试".getBytes();   
         InetAddress address = InetAddress.getByName("239.0.0.255");   
         dataPacket = new DatagramPacket(data, data.length, address,8899);  
         ms.send(dataPacket);  
         ms.close();   
    }
}

 

 

  服务器端接收程序:

//服务器端程序
public class TestMain
{
    private static MulticastSocket ds;  
    static String multicastHost="239.0.0.255";  
    static InetAddress receiveAddress; 
    public static void main(String[] args) throws IOException
    {
        ds = new MulticastSocket(8899);  
        receiveAddress=InetAddress.getByName(multicastHost);  
        ds.joinGroup(receiveAddress);  
        new Thread(new udpRunnable(ds)).start();  
    }
}
    class udpRunnable implements Runnable
    {
        MulticastSocket ds;
        public udpRunnable(MulticastSocket ds)
        {
            this.ds=ds;
        }
        public void run()
        {
             byte buf[] = new byte[1024];  
             DatagramPacket dp = new DatagramPacket(buf, 1024);  
             while (true) 
             {  
                    try
                    {  
                        ds.receive(dp);  
                        System.out.println("receive client message : "+new String(buf, 0, dp.getLength()));  
                    } 
                    catch (Exception e) 
                    {  
                        e.printStackTrace();  
                    }  
                }  
            
        }
}

 

老版QQ原生表情gif动态 这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。 立即下载

相关推荐

Verilog语法之十:过程块(initial和always)

我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。

航天领域资深码农,型号经验丰富,一线干货分享 1672

Java 中的广播和多播

一、介绍 在本文中,我们将描述如何在 Java 中处理一对多(广播)和一对多(多播)通信。本文中概述的广播和多播概念基于 UDP 协议。 我们首先快速回顾一下数据报和广播以及它是如何在 Java 中实现的。我们还研究了广播的缺点并建议多播作为广播的替代方案。 最后,我们通过讨论在IPv4 和 IPv6 中对这两种寻址方法的支持来结束。 2. 数据报回顾 根据数据报的官方定义,“数据报是通过网络发送的独立的、自包含的消息,其到达、到达时间和内容都没有保证”。 在 Java 中,java.n

allway2的博客 4003

UG/NX二次开发Siemens官方NXOPEN实例解析—1.3 BlockStyler/ExtrudewithPreview

随着工业智能化的不断发展,UG二次开发的需求越来越多,也吸引了大批的二开从业人员,本人作为一名资深IT从业者(10年+)也毅然加入二次开发大军。然而,和流行IT行业(互联网、金融、医疗等)相比,工业智能化的门槛显得更高一点,专业的工业软件,相对封闭的开发理念和更小的开发圈子,让刚进入二开的从业者有点举步维艰。边学边整理,希望通过这系列文章的整理能给二开的生态增添一叶绿。

MarcoPro的博客 1633

【快速入门-简单实现】使用Java实现的单播、组播和广播

一个Java实现的用于快速上手的单播、组播和广播的用例。

欢迎。 3098

【2021工业图像异常检测文献】DRÆM: 基于判别性训练的重建嵌入表面异常检测方法

DRÆM – A discriminatively trained reconstruction embedding for surface anomaly detection

qq_1532145264的博客 1477

5-->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之一

SWITCH 交换芯片驱动配置: 一、 配置 MDIO 总线 二、配置 MAC 接口 三、基于 MAC 的 DMA 配置 四、设备驱动结构体 五、数据收发包

weixin_38387929的博客 1万+

udp单播,广播,多播实现(ReceiveFromAsync,SendToAsync)

注意:客户端和服务器实现基本一致,本地host和port和多播的host和port可以一样 (1)多播 1.将本地host加入多播组中,只有加入多播组的成员才能接受同组的节点发送的多播 MulticastOption mcastOption = new MulticastOption(IPAddress.Parse(MultiCastHost), IPAddress.Parse(l...

weixin_30785593的博客 1031

【WebLogic】Linux图形化界面安装WebLogic 14.1.2.0

Linux系统图形化界面安装WebLogic 14.1.2.0.0版本

cnskylee的博客 839

【Java】单播、组播、广播

UDP在通信的时候有三种方式,分别是单播、组播、广播。单播:一对一,左边的发送端只给右边的一台电脑发送数据。组播:顾名思义,可以给一组电脑发送信息。左边还是发送端,但是右边的接收端可以是一组。广播:左边的发送端,可以给局域网中所有的电脑发送数据。那么这三种方式代码该怎么写呢?单播很简单,我们之前写的所有的代码都是单播形式。因为我们之前写的代码就是一对一的形式。

qq_39921135的博客 790

PMF5.0计算

EPA PMF5.0 计算步骤

nuistsy的博客 4543

matlab实现MSK调制解调

文章目录一、要求二、设计三、代码四、结果五、结论 一、要求 画出MSK信号产生的信息、I路、Q路信号对比图以及接收端解调的信息恢复的对比图。 二、设计 1.MSK调制 2.MSK解调 三、代码 clear all;clc; N=20; T=1; fc=10; Fs=100; bitstream=randi([0,1],1,N); bitstream1=2*bitstream-1; b0=1; for i=1:N encode_output(i)=b0*bitstream

Time_book的博客 1万+

java单播多播socket_Java单播、组播(多播)、广播的简单实现

简介单播有TCP和UDP两种实现,组播(多播)和广播只有UDP一种实现。单播和广播基本同样,只是广播的数据包IP为广播IP。单播DatagramSocket和DatagramPacket服务端:import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPServer {public static voi...

weixin_42355204的博客 695

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 283

java udp 广播 组播_UDP 单播、广播和多播

使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。...

weixin_39849254的博客 545

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java单播多播socket_广播(broadcast),组播(multicast),单播(unicast)的Java实现

## IP地址在IPv4中,一共有五类IP地址* A类地址:网络号占1个字节。网络号的第一位固定为0。* B类地址:网络号占2个字节。网络号的前两位固定为10。* C类地址:网络号占3个字节。网络号的前三位固定位110。* D类地址:前四位是1110,用于多播(multicast),即一对多通信。* E类地址:前四位是1111,保留为以后使用。其中,D类地址是从224.0.0.0到239.255....

weixin_28912017的博客 1035

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java 组播_Java单播、广播、多播(组播)

一、通信方式分类在当前的网络通信中有三种通信模式:单播、广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点。单播:单台主机与单台主机之间的通信广播:当台主机与网络中的所有主机通信多播:当台主机与选定的一组主机的通信二、单播单播是网络通信中最常见的,网络节点之间的通信 就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递...

weixin_33548183的博客 492

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JAVA 单播、多播(组播)、广播(P2P网络)

JAVA单播,多播(组播),广播

Zilin的博客 1304

JAVA 单播、多播(组播)、广播

单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在? 1. 单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数

木头的专栏 2050

java单播多播socket_[Java TCP/IP Socket] — 单播、广播、组播(一.原理)

转自:http://www.2cto.com/kf/201312/264488.html在当前网络通信中(TCP/IP也不例外)有三种通信模式:单播、广播、组播(又叫多播, 个人感觉叫多播描述的有点不恰当),其中多播出现的时间最晚,但同时具备单播和广播的优点,最具有发展前景。一.通信方式分类:1.单播:单台主机与单台主机之间的通信;2.广播:单台主机与网络中所有主机的通信;3.组播:单台主机与选定...

weixin_35875219的博客 362

Java单播、组播(多播)、广播的简单实现

简介 单播有TCP和UDP两种实现,组播(多播)和广播只有UDP一种实现。单播和广播基本一样,只是广播的数据包IP为广播IP。 单播 DatagramSocket和DatagramPacket 服务端: import java.net.DatagramPacket; import java.net.DatagramSocket; public class UDP...

weixin_30532369的博客 675

java 广播模式_Java单播、广播、多播(组播)---转

一、通信方式分类在当前的网络通信中有三种通信模式:单播、广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点。单播:单台主机与单台主机之间的通信广播:当台主机与网络中的所有主机通信多播:当台主机与选定的一组主机的通信二、单播单播是网络通信中最常见的,网络节点之间的通信 就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递...

weixin_34921325的博客 447

Java UDP 单播、多播(组播)、广播、任播(未实现)

单播、组播、广播、任播的定义 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时

司马懿的西山居 6839

Java单播、广播、多播(组播)---转

一、通信方式分类   在当前的网络通信中有三种通信模式:单播、广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点。 单播:单台主机与单台主机之间的通信 广播:当台主机与网络中的所有主机通信 多播:当台主机与选定的一组主机的通信 二、单播   单播是网络通信中最常见的,网络节点之间的通信 就好像是人们之间的对话一样。如果一个人对另外一个人说话, 那么用网络技术的...

weixin_30532837的博客 101
上一篇: 从字节码分析i = i++ 与 i = ++i 的区别
下一篇: 转:JVM 线上故障排查基本操作
Adonis_D_Gogh
博客等级 码龄9年 21粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值