标签: multicast

234.xxx IP地址 - 它是什么

我过去做了很多UDP套接字编程,但只听说过通常保留的IP:

  • 127.0.0.1
  • 192.168.XX
  • 10.xxx

但是从IP2Location它说多播.是234.5.5.1实际的IP地址或保留?

udp multicast ip-address

1
推荐指数
1
解决办法
3778
查看次数

为什么我的UDP组播没有到达网络上的机器?

我正在尝试使用UDP多播设置自动发现,并使用来自互联网的一些示例代码.这似乎当我运行在客户端和在同一台机器上的服务器工作正常,但是当我在不同的机器上运行它们,无论是与一机在虚拟机上运行我的机器(VirtualBox的)上或在其他"真正"的机器网络然后其他机器似乎永远不会收到正在广播的消息.

在一些谷歌搜索后,似乎可能的罪魁祸首将是路由器(SpeedTouch 780)可能正在丢弃数据包.我怎样才能检查是否是这种情况?他们可以检查其他事情以尝试追踪问题吗?可能完全是别的东西吗?

代码:

服务器代码

using System;
using System.Net.Sockets;
using System.Text;

internal class StockPriceMulticaster
    {
    private static string[] symbols = {"ABCD", "EFGH", "IJKL", "MNOP"};

    public static void Main ()
        {
        using (UdpClient publisher = new UdpClient ("230.0.0.1", 8899))
            {
            Console.WriteLine ("Publishing stock prices to 230.0.0.1:8899");
            Random gen = new Random ();
            while (true)
                {
                int i = gen.Next (0, symbols.Length);
                double price = 400*gen.NextDouble () + 100;
                string msg = String.Format ("{0} {1:#.00}", symbols, price);
                byte[] sdata = Encoding.ASCII.GetBytes (msg); …
Run Code Online (Sandbox Code Playgroud)

c# udp multicast

1
推荐指数
1
解决办法
1万
查看次数

MulticastSocket中joinGroup()的用途

我在创建MulticastSocket后尝试加入组播组.

做类似的事情:

MulticastSocket mySocket = new MulticastSocket(4444);
mySocket.joinGroup(InetAddress.getByName("230.0.0.1")); // as an example
Run Code Online (Sandbox Code Playgroud)

工作良好.但是,当我使用接受SocketAddress作为参数的MulticastSocket构造函数时,不会加入多播组,并且需要对joinGroup()进行单独调用.

MulticastSocket mySocket = new MulticastSocket(new InetSocketAddress("230.0.0.1", 4444));
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

谢谢!

java sockets multicast

1
推荐指数
1
解决办法
7473
查看次数

为什么忽略具有相同源IP地址的组播消息

我实现了一个利用多播消息的网络发现过程.它允许发现具有连接到同一段的任何ip地址的特定设备.

客户端A发送多播消息,要求其他客户端.其他客户端使用多播消息"我在这里......"进行响应.基本上这很好用.

但有一个案例让我烦恼.

 Client A       Client B
192.168.2.5   192.168.2.5  
    |             |
     \__________ / 
         >>>
  UDP Multicast Message: 
  Source: 192.168.2.5 | Destination: 224.0.0.150
Run Code Online (Sandbox Code Playgroud)

可能会出现一致,即发送多播消息的客户端A和客户端B都监听相同的IP地址.在这种情况下,UDP数据包的源地址与目标客户端的IP地址相同.因此,客户端B上的应用程序不接收任何多播消息.

我想具有相同消息的多播消息被阻塞并丢弃在ip-stack中.有没有办法(套接字设置)接收它.

linux ip network-programming multicast

1
推荐指数
1
解决办法
3052
查看次数

从UDP多播RTSP视频流中读取

我目前正在开发一个需要解码UDP多播RTSP流的应用程序.目前,我可以使用ffplay via查看RTP流

ffplay -rtsp_transport udp_multicast rtsp://streamURLGoesHere
Run Code Online (Sandbox Code Playgroud)

但是,我试图使用FFMPEG来打开UDP流(为了简洁起见,错误检查和清除代码被删除).

AVFormatContext* ctxt = NULL;
av_open_input_file(
    &ctxt,
    urlString,
    NULL,
    0,
    NULL
);

av_find_stream_info(ctxt);

AVCodecContext* codecCtxt;

int videoStreamIdx = -1;
for (int i = 0; i < ctxt->nb_streams; i++)
{
    if (ctxt->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
    {
        videoStreamIdx = i;
        break;
    }
}

AVCodecContext* codecCtxt = ctxt->streams[videoStreamIdx]->codec;
AVCodec* codec = avcodec_fine_decoder(codecCtxt->codec_id);
avcodec_open(codecCtxt, codec);

AVPacket packet;
while(av_read_frame(ctxt, &packet) >= 0)
{
    if (packet.stream_index == videoStreamIdx)
    {
        /// Decoding performed here
        ...
    }
}

...
Run Code Online (Sandbox Code Playgroud)

这种方法适用于由原始编码视频流组成的文件输入,但对于UDP多播RTSP流,它无法执行任何错误检查av_open_input_file().请指教...

udp ffmpeg multicast video-streaming

1
推荐指数
1
解决办法
7001
查看次数

具有boost asio的C++多播组播接收器

我必须实现一个多播接收器,它能够加入一个多播组列表,并使用boost在特定线程中处理接收到的数据.我确实尝试了以下代码.....

boost::asio::io_service m_io_service;
boost::asio::ip::udp::socket m_multicast_socket(m_io_service);

// listen address
boost::asio::ip::address listen_address  
     = boost::asio::ip::address::from_string("0.0.0.0");

// listen port
unsigned short multicast_port = m_configuration->m_multicast_interface_port;

boost::asio::ip::udp::endpoint listen_endpoint( listen_address, multicast_port );

// open socket
m_multicast_socket.open( listen_endpoint.protocol() );

// set socket buffer size
m_multicast_socket.set_option( 
       boost::asio::ip::udp::socket::receive_buffer_size
               ( m_configuration->m_receiving_socket_buffer_size ) );

// other sockets could bind to listen_address
m_multicast_socket.set_option( boost::asio::ip::udp::socket::reuse_address(true) );

boost::asio::socket_base::bytes_readable num_of_bytes_readable(true);

m_multicast_socket.io_control(num_of_bytes_readable);

m_multicast_socket.bind(listen_endpoint);


// joining a list of multicast group
for ( size_t i=0; i < multicast_groups.size(); ++i )
{
    boost::asio::ip::address multicast_address 
         = boost::asio::ip::address::from_string( multicast_groups[i] );

    m_multicast_socket.set_option( …
Run Code Online (Sandbox Code Playgroud)

c++ multicast boost-asio

1
推荐指数
1
解决办法
8447
查看次数

如何使用golang在Internet上实现组播?

我是golang编程和多播编程的新人.我在https://gist.github.com/fiorix/9664255上看到了一个关于golang组播的程序.

import (
    "encoding/hex"
    "log"
    "net"
    "time"
)

const (
    srvAddr         = "224.0.0.1:9999"
    maxDatagramSize = 8192
)

//send multicast data
func ping(a string) {
    addr, err := net.ResolveUDPAddr("udp", a)
    if err != nil {
        log.Fatal(err)
    }
    c, err := net.DialUDP("udp", nil, addr)
    for {
        c.Write([]byte("hello, world\n"))
        time.Sleep(1 * time.Second)
    }
}

//print received data
func msgHandler(src *net.UDPAddr, n int, b []byte) {
    log.Println(n, "bytes read from", src)
    log.Println(hex.Dump(b[:n]))
}

//join multicast group and receive multicast data
func serveMulticastUDP(a …
Run Code Online (Sandbox Code Playgroud)

networking network-programming multicast go

1
推荐指数
1
解决办法
709
查看次数

如何诊断我们的Java IP多播应用程序?

出于某种原因,我运行的每个组播示例(计算机运行OpenSUSE Linux)都可以运行.客户都只是静静地坐着.如何找出阻止/忽略多播的原因?

一些例子:

例1

http://www.roseindia.net/java/example/java/net/udp/UDPMulticastServer.java

例2

http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html (使用这些文件:) http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastServer.java http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastServerThread.java http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastClient.java http:// docs.oracle.com/javase/tutorial/networking/datagrams/examples/one-liners.txt

java sockets linux networking multicast

-1
推荐指数
1
解决办法
8055
查看次数