精华内容
下载资源
问答
  • 局域网内组接收失败
    千次阅读
    2019-01-07 14:58:41

    最近进行组播通信时,由于接收组播的服务部署在windows,linux(ubuntu,mac)等环境下。windows环境下。出现windows下的服务接收不到组播数据包。度娘都建议修改注册表。为了系统安全起见,不建议采用。
    总结原因如下:
    1.关闭防火墙
    2.关闭虚拟网卡
    3.开启组播协议
    eth0 Link encap:以太网 硬件地址 b0:83:fe:50:64:b8
    inet 地址:192.168.120.82 广播:192.168.120.255 掩码:255.255.255.0
    inet6 地址: fe80::b283:feff:fe50:64b8/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
    接收数据包:73794 错误:0 丢弃:0 过载:0 帧数:0
    发送数据包:26046 错误:0 丢弃:0 过载:0 载波:0
    碰撞:0 发送队列长度:1000
    接收字节:13765796 (13.7 MB) 发送字节:5133290 (5.1 MB)

    更多相关内容
  • IANA提供的以太网多播地址的范围是:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF 只有23位能用作多播地址 之前在分类ip地址中介绍过D类地址 FX . XX . XX . XX 是多播地址,有28位能用 因多播ip地址与以太网多播地址的...
    • IANA提供的以太网多播地址的范围是:01-00-5E-00-00-0001-00-5E-7F-FF-FF
      只有 23位 能用作 多播地址
      之前在分类ip地址中介绍过D类地址 FX . XX . XX . XX 是多播地址,有28位能用
      多播ip地址以太网多播地址 的映射关系不是唯一的,因此收到多播数据报的主机还要在3层利用软件进行过滤。
      在这里插入图片描述
    • 实例
      例如ip多播地址 224.128.64.32 (E0-80-40-20) 和 另一个 ip多播地址 224.0.64.32 (E0-00-40-20)
      转换成以太网的硬件多播地址都是 01-00-5E-00-40-20
      仍需要目的主机在3层根据ip地址进行过滤
    展开全文
  • 问题是怎么关联,我看书上的意思是在互联网层面进行复制处理,局域网层面进行硬件多播;前者还好理解,后者怎么理解,一个多播IP地址是一个D类IP地址,每一个IP多播地址都只是一个,如何能反馈到个主机上呢(即和...
  • 局域网内组的技术实现

    千次阅读 2018-01-31 15:26:18
    1. 具有大量终端用户的局域网或城域网IPTV应用; 2. 大型商场中的多媒体信息发布应用; 3. 大型企事业单位内部的网络电视与活动直播应用; 4. 广电网络中的DVB互联网电视应用; 5. 大型高校面向...

    原文出处:直播社区

    应用场景:

    1.       具有大量终端用户的局域网或城域网IPTV应用;

    2.       大型商场中的多媒体信息发布应用;

    3.       大型企事业单位内部的网络电视与活动直播应用;

    4.       广电网络中的DVB互联网电视应用;

    5.       大型高校面向上万师生的多媒体教学应用;

    6.       大型酒店的网络电视应用;

    在以上这些应用场景中,我们往往需要在局域网内发布组播节目,这样做的好处如下:

    1.       节省骨干网带宽资源

    Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播可以极大地节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播技术的核心就是针对如何节约网络资源的前提下保证服务质量。

    2.       降低服务器端的压力

    组播的技术实现,是通过各级交换机进行端口间数据复制,终端用户并不需要访问服务器端,因此即使面向海量终端用户,服务器端也只面向网络输出一份数据流。

    3.       避免广播风暴

    组播技术不同于广播技术,它能够实现将数据有选择性地复制给需要的主机,而不是发送给所有主机,这样可以避免广播风暴的发生。

    下面,我来结合自己多年的经验,介绍一下如何实现这种局域网组播应用。

    首先,我们要准备好组播发布工具。

    从节省成本考虑,我建议大家采用“主机+软件”的方式来实现。

    主机:可以选用高配置的通用PC机或者中低端服务器;

    软件:这是最核心的部分,主要的功能实现都是靠软件来完成的。当前最专业、最好用的软件主要有如下两款:

    1)直播大师(Live Master)

    这款软件是由北京顺景科技有限公司开发的一款专业直播软件,它能够支持当前最主流的H.264H.265高效视频编码,这样能够在直播时最大程度减少对带宽资源的占用。用它做1080P的高清直播,采用H.264编码技术只需占用3~4Mb/s带宽;采用H.265编码技术只需占用1.5~2Mb/s带宽。

    它具备对同一路信号源进行多格式并行编码处理能力。

    它既支持IPv4网络协议,又支持IPv6网络协议。

    它支持对编码的多个节目流同时进行组播输出。

    它支持DVB广播系统中的CSA通用加扰算法,可用于对组播节目加密。

    除了强大的UDP组播发布功能外,它还具有强大的字幕插播、台标插播功能,字幕插播功能经常被用于实时的文字翻译或者滚动字幕广告,台标插播 功能可用于对节目版权进行加密或者品牌形象宣传。

    由以上特性可以看出,这款软件是目前该领域内功能最为强大的视频直播专用工具。并且由于该软件采用C++语言编写而成,具有极强的稳定性,并且对硬件资源占用极低。


    2)  FFMPEG

    Ffmpeg是一款功能强大的命令行视频处理工具,它也能给实现基本的组播发布功能,但是由于它是一款命令行工具软件,语法及其晦涩难懂,适合开发人员研究使用,普通用户很难掌握。

    这是ffmpeg的命令行界面

    这是ffmpeg发布UDP组播的命令行脚本

    对于更复杂功能的命令行实现,我目前还没有研究明白,有感兴趣的可以去查看官方的英文手册。

    其次,组播节目的接收回放。

    前面我们通过LiveMaster(直播大师)或者FFMPEG将节目以组播方式发布以后,在用户收看端需要将节目接收下来并且回放。

    根据不同的应用场景,节目接收方式主要有两种:

    第一种:通过电脑主机来接收和回放

    这种方式适合个人用户收看的场合。

    所需的软硬件:

    硬件设备:PC机一台

    软件系统:VLC视频播放器

    操作方式:在电脑上安装好VLC视频播放器,然后依次点击“媒体”->“打开网络串流”功能菜单。

    在弹出的窗口中输入组播节目的播放地址,如下图:

    点击“播放”,这样就能将组播节目解码和播放出来了。

    第二种:通过大屏幕或者电视墙来显示画面

    这种方式适合商场、酒店、会议室、大型公共场所等具有大型显示设备的场合。

    所需的设备:

    在这种场景下,使用电脑终端显然极不方便(操作复杂,稳定性差,成本高),因此,这就需要一台性价比高、稳定性强的组播专用接收设备来实现。北京顺景科技为此开发了一款支持4K视频解码服务器,由于这款设备采用嵌入式低功耗设计,整机的运行功率只有6W,因此稳定性非常强,带有HDMI 2.0接口,可以输出高达4096 x 2160分辨率的4K视频。该设备的连接示意图如下:


    展开全文
  • 本实例通过采集麦克声音数据,利用udp组方式在局域网中进行组传送(类似在组内进行广播,udp广播、组、单请自行查阅相关资料),组内成员通过接收并播放到扬声器。 程序中引用了 Naudio 声音处理类库进行...

    C# UDP+NAUDIO局域网声音组播传送与播放

    本实例通过采集麦克声音数据,利用udp组播方式在局域网中进行组播传送(类似在组内进行广播,udp广播、组播、单播请自行查阅相关资料),组内成员通过接收并播放到扬声器。
    程序中引用了 Naudio 声音处理类库进行声音的采集与播放,可通过VS NuGet 查找并引用,关于声音处理相关技术请查阅相关文档。
    防火墙要做好响应放行或直接关闭,否则数据无法接收和发送。另外可网管交换机也要做相应放行,否则也无法通讯。

    运行效果:
    在这里插入图片描述
    注意:两台pc要设置相同广播端口才可以。

    using System;
    using System.Windows.Forms;
    using NAudio.Wave;
    using System.Net.Sockets;
    using System.Threading;
    using System.Net;
    
    namespace Test
    {
        public partial class FormNetSound : Form
        {
            private WaveIn mic;//音频输入,从mic采集,如果电脑硬件没有mic会报错
            private WaveOut speaker;//音频输出
    
            private BufferedWaveProvider _BWP;//接收声音缓冲
           
            private UdpClient2 receiver;//接收用
            private UdpClient2 multicaster;//组播用
    
            public FormNetSound()
            {
                InitializeComponent();
    
                lbl_mic.Visible = false;//声音输入设备打开标志
                lbl_speaker.Visible = false;//声音输出设备打开标志
             
            }
            /// <summary>
            /// udp音频接收响应
            /// </summary>
            /// <param name="obj">pcm音频数据</param>
            private void receive_sound(byte[] obj)
            { 
                _BWP.AddSamples(obj, 0, obj.Length);//添加到待播放缓存中
            }      
            /// <summary>
            /// mic声音udp组播
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void waveSource_DataAvailable(object sender, WaveInEventArgs e)
            {
                if (!lbl_mic.Visible) return;            
    
                multicaster.SendMessageByMulticast(e.Buffer,int.Parse(tb_dest_port.Text));           
    
            }
    
            private void btn_receive_Click(object sender, EventArgs e)
            {
                if (btn_receive.Text.Equals("静音"))
                {
                    //接收udp组播数据用
                    receiver = new UdpClient2(int.Parse(tb_dest_port.Text) , tb_dest_ip.Text);
                    
                    //生成默认声音播放对象
                    speaker = new WaveOut();
                    //设置声音格式
                    WaveFormat wf = new WaveFormat(16000, 16, 1);
    
                    //初始化待播放声音缓存对象
                    _BWP = new BufferedWaveProvider(wf);
    
                    //初始化播放设备
                    speaker.Init(_BWP);
    
                    if (receiver.recvMessageEvent == null)
                    {
                        //绑定udpclient接收数据响应事件
                        receiver.recvMessageEvent += new Action<byte[]>(receive_sound);
                    }
    
                    
                    receiver.Start();//开始接收数据
                    btn_receive.Text = "打开";
                    
                    speaker.Play();//开始播放声音
                    lbl_speaker.Visible = true;
                    
                }else
                {
                    btn_receive.Text = "静音";
                    speaker.Stop();//停止播放声音
                    receiver.CloseUdpCliend();//关闭接收           
                    lbl_speaker.Visible = false;
                }
            }
    
            private void btn_send_Click(object sender, EventArgs e)
            {
                if (btn_send.Text.Equals("静音"))
                {
                   //发送声音数据用
                    multicaster = new UdpClient2(int.Parse(tb_local_port.Text) , tb_dest_ip.Text);
    
                    mic = new WaveIn();//生成音频输入设备
                    mic.WaveFormat = new WaveFormat(16000, 16 ,1); // 16bit,16KHz,Mono的录音格式
                    
                  
                    //绑定声音输入处理事件
                    mic.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable);              
    
                    multicaster.Start();//开始广播
                    btn_send.Text = "打开";
    
                    mic.StartRecording();//开始采集声音
                    lbl_mic.Visible = true;
                }
                else
                {
                    btn_send.Text = "静音";
                    mic.StopRecording();//停止采集声音
                    multicaster.CloseUdpCliend();//关闭组播
                    lbl_mic.Visible = false;
                }
            }
    
          
    
    
        }
        
        public class UdpClient2
        {
            //接收数据事件
            public Action<byte[]> recvMessageEvent = null;
            //发送结果事件
            public Action<int> sendResultEvent = null;
            //本地监听端口
            public int localPort = 0;
            //组播地址
            public string MultiCastHost = "";
    
            
    
            private UdpClient udpClient = null;
    
            public UdpClient2(int localPort, string MultiCastHost)
            {
                if (localPort < 0 || localPort > 65535)
                    throw new ArgumentOutOfRangeException("localPort is out of range");
                if (string.IsNullOrEmpty(MultiCastHost))
                    throw new ArgumentNullException("message cant not null");
    
                this.localPort = localPort;
                this.MultiCastHost = MultiCastHost;
            }
    
            public void Start()
            {
                while (true)
                {
                    try
                    {
                        udpClient = new UdpClient(localPort);
                        udpClient.JoinMulticastGroup(IPAddress.Parse(MultiCastHost));
                        ReceiveMessage();
                        break;
                    }
                    catch (Exception)
                    {
                        Thread.Sleep(100);
                    }
                }
            }
    
            private async void ReceiveMessage()
            {
                while (true)
                {
                    if (udpClient == null)
                        return;
    
                    try
                    {
                        
                        UdpReceiveResult udpReceiveResult = await udpClient.ReceiveAsync();
                        byte[] message = udpReceiveResult.Buffer;
                        if (recvMessageEvent != null)
                            recvMessageEvent(message);
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
    
            public async void SendMessageByMulticast(byte[] message,int destport)
            {
               
                if (udpClient == null) return;
                
    
                byte[] buffer = message;
                int len = 0;
                for (int i = 0; i < 1; i++)
                {
                    try
                    {
                        len = await udpClient.SendAsync(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse(MultiCastHost), destport));
                    }
                    catch (Exception)
                    {
                        len = 0;
                    }
    
                    if (len <= 0)
                        Thread.Sleep(100);
                    else
                        break;
                }
    
                if (sendResultEvent != null)
                    sendResultEvent(len);
            }
    
            public void CloseUdpCliend()
            {
                if (udpClient == null)
                    throw new ArgumentNullException("udpClient cant not null");
    
                try
                {
                    udpClient.Client.Shutdown(SocketShutdown.Both);
                }
                catch (Exception)
                {
                }
                udpClient.Close();
                udpClient = null;
            }
        }
    }
    
    展开全文
  • 在很应用场景中,我们往往需要在局域网内发布组节目,这样做的好处如下: 1. 节省骨干网带宽资源 Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组是一...
  • 网络层(7.IP多播)

    千次阅读 2022-04-11 15:09:16
    一、IP多播的基本概念 IP多播是指由一个源点发送到许多终点,即一对的通信。 现在IP多播属于互联网热点,例如:直播、实时信息交付(股票、新闻)、软件更新等。 多播可以大大节约互联网资源: 例如视频服务器要...
  • 为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍一下多播的概念。  众所周知,普通IP通信是在一个发送者和一个接收者...
  • Visual C++实现局域网IP多播效果 在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一...
  • IP多播(组

    千次阅读 2019-09-29 16:27:44
    本文主要讲解多播的基本概念以及使用多播方式进行数据传输的基本原理和方法。
  • 多播(组)原理分析

    2020-03-13 17:04:21
    为什么要使用多播: 网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。利用这一...
  • 局域网环境下的直播平台(校园电视台)搭建之路

    万次阅读 多人点赞 2019-06-03 11:19:33
    近些年,随着互联网视频的普及,各个行业都在通过视频这种流行的方式来发布内容,生动、直观这是它的天生优势。 作为学校里的一名信息中心...说实话,虽然自己从事信息技术和多媒体已经有8年时间,对摄像、视频编...
  •  2 系统硬件总体设计  2.1 系统结构  该广播系统采用局域网络和Internet网络来实现个分区控制。分区可选择个区域相结合通过网络连成一个整体,可按照具体需求进行分区控制。此外该广播系统设置有背景音响...
  • IP多播

    千次阅读 2018-07-26 16:58:13
    剩下的基本参考谢希仁计算机网络7th ...IP多播直观上可以按照下图理解,源主机只需要发送一份数据,而网络中的路由器在转发该数据时需要将它复制份,分别发给在该个多播组内的所有主机。也就是说,IP...
  • ... 在局域网中,管理员常常需要将某条信息发送给一组用户。...为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要
  • 多播与广播原理分析及区别

    千次阅读 2019-01-08 14:50:17
    假定服务器主机在本地局域网上,但不知道它的单IP地址时对它进行定位,即进行资源发现。 当有个客户和单个服务器通信时,减少局域网上的数据流量。 使用广播的因特网应用的例子: ARP协议通过链路层广播定位...
  • 用Visual C++在局域网实现IP多播

    千次阅读 2008-09-02 22:22:00
    发信人: olivier (闷闷◎笨笨※简单生活¤徜徉爱琴海), 信区: VisualC标 题: 用Visual C++在局域网实现IP多播1(zz)发信站: 水木社区 (Wed Jan 17 05:49:56 2007), 站内【 以下文字转载自 NetPRG ...
  • JAVA基于局域网的聊天室系统(源代码+论文) 摘 要 视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息的传递和服务,具有极其广泛的发展前景。 本文介绍了...
  • MAC 地址以及它的单多播、组

    千次阅读 2019-11-12 14:55:31
    MAC地址(英语:Media Access Control Address,直接翻译就是媒体访问控制地址)也被称作局域网地址(LAN Address),以太网地址(Ethernet Address)或者(网卡)物理地址(Physical Address)。在OSI模型中,第三...
  • 多播(组)原理分析

    千次阅读 2018-05-24 18:55:27
    为什么要使用多播: 网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。...
  • 通过路由器设置,不用IPTV盒子,局域网内、局域网外任意设备随时随地观看网络电视直播
  •  2 系统硬件总体设计  2.1 系统结构  该广播系统采用局域网络和Internet网络来实现个分区控制。分区可选择个区域相结合通过网络连成一个整体,可按照具体需求进行分区控制。此外该广播系统设置有背景音响...
  • 局域网广播音视频在实际应用中广泛存在,如局域网视频教学、景区广播、会议等多种场景,本文提供了一种实现局域网音视频广播的方案。 服务器端 我们首先以指定的频率采集桌面图片,把桌面图片编码为h264格式,再把h...
  • 对于现在局域网视频点播直播系统,可以选择的有ott电视盒子系统和IPTV方案,这2个哪个更好呢?那么如何搭建一个搭建一个可直接运营、可管理、安全可靠的互联网电视OTT-TV/IPTV平台呢?zui省时省力zui快的把视频直播...
  • 1、局域网之间通过查询对方IP地址可以将对方Mac地址映射到主机的APR缓冲表中。将主机IP地址映射到Mac上 首先通过 net view 查询共享的的局域网主机 第二:随便选取一个计算机名,强制使用ipv4得到IP地址,ping...
  • 参考链接 ... 局域网 局域网(Local Area Network):简称LAN,是指在某一区域内由台计算机互联成的计算机组,使用广播信道 ...特点5:采用分布式控制和广播式信道,能进行广播和组 决定局域网的主
  • 局域网的数据链路层

    2021-06-12 12:44:46
    局域网的数据链路层局域网的特点和优点局域网的分类局域网(以太网)的介绍以太网的MAC层MAC层的硬件地址MAC帧的格式使用总线方式的以太网使用集线器的星型拓扑的以太网扩展的以太网在物理层扩展以太网在数据链路层...
  • 1 引言  随着电子技术的发展,嵌入式系统已广泛用于信息家电、...基于嵌入式系统的MP3音频点播系统可广泛用于卡拉OK厅、语音教室和公共广播等许多场所,它由一个网络服务器和个客户端播放器组成,是基于局域网的C/S
  • 组建万兆局域网对网络设备的要求 \r\n\r\n万兆局域网是属于新型的高带宽网络,在提升网络性能的同时,更的是关注网络的安全性、业务融合能力与自适应能力。\r\n\r\n 万兆局域网是什么?\r\n\r\n 万兆局域网,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,117
精华内容 8,846
关键字:

局域网硬件多播