问题标签 [multicastsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
124 浏览

java - 即使发送数据包,MulticastSocket.receive 也不会返回

我正在尝试编写每 10 秒向多播组发送一条消息的服务。发件人如下:

接收方必须读取数据包并回复。

对于发件人,输出是:

send Pkt
[10 sec sleep]
发送 Pkt
(很多次...)

对于接收器是:

等待 KeepAlive 数据包

这两个功能都在同一台机器上运行,使用两个不同的进程。MULTICAST_IP 相同(已验证)。我不明白为什么receive()不返回。

MULTICAST_PORT 值在执行函数的引用方面有所不同,但这应该不是问题。不抛出异常。

0 投票
0 回答
42 浏览

java - MulticastSocket 未收到发送的数据包

我正在尝试在两个进程之间使用 MulticastSocket。服务器发送数据包,客户端需要读取它。服务器代码是:

客户端代码为:

问题是服务器发送数据包(send(pkt)返回),而不是客户端没有收到packate(receive(pkt)没有返回)。问题出在哪里?

ps:服务器和客户端在同一台电脑上,MULTICAST_TTL为1。

0 投票
1 回答
3843 浏览

c# - 使用多播套接字的 upnp 设备的 ssdp 发现

我正在尝试使用多播套接字在网络中发现 UPnP 设备,但是,我似乎多次获得相同的设备。这里的发现代码有什么问题。

我得到的结果如下

HTTP/1.1 200 OK CACHE-CONTROL:max-age = 60 EXT:位置:http ://10.2.1.89:5200/Printer.xml 服务器:网络打印机服务器 UPnP/1.0 V4.00.01.31 DEC-23-2014 ST : uuid:16a65700-007c-1000-bb49-30cda79cac19 USN: uuid:16a65700-007c-1000-bb49-30cda79cac19

HTTP/1.1 200 OK CACHE-CONTROL:max-age = 60 EXT:位置:http ://10.2.1.87:5200/Printer.xml 服务器:网络打印机服务器 UPnP/1.0 V4.00.01.31 DEC-23-2014 ST : uuid:16a65700-007c-1000-bb49-30cda79b5419 USN: uuid:16a65700-007c-1000-bb49-30cda79b5419

使用的代码如下

0 投票
2 回答
1436 浏览

java - 多播错误:未找到多播地址

我正在尝试创建一个 SOAP 客户端。但不断收到此错误。任何想法为什么?我尝试更改IP但仍然相同的错误。

在此处输入图像描述

MulticastSocket.Java

SOAPClient.java

SOAPCLient.java @ 第 80 行

SOAPClient.java(主要)

0 投票
0 回答
42 浏览

java - MulticastSocket 接收者永远等待消息

我不知道它出了什么问题,但我正在尝试使用 MulticastSocket 与几个不同的板通信,并且接收器似乎一直在等待消息。

我必须通过网络将 3 个不同的对象从不同的客户端传输到只有一台服务器来分析消息。

服务器代码:

客户端代码:

我启动服务器,然后启动客户端,服务器被阻止在escucha.receive.

0 投票
1 回答
132 浏览

c# - IpMulticast 在网络丢失后停止工作,然后在 10-15 分钟后重新连接

我正在开发基于 ac# 的应用程序,该应用程序使用多播连续发送消息。每件事都很好。接收端的客户端不断接收消息,直到网络断开。但是当我重新连接网络时,同一网络上的客户端机器不会收到任何消息,直到我通过接收代码收集同一台机器上的所有消息。

发送代码:

接收代码:

似乎所有消息都在我的系统中收集,并且特定多播地址(即“239.0.0.222”)上存在网络堵塞。好像我尝试更改地址它可以工作,但不能在“239.0.0.222”上再次更改。

任何人都知道发生这种情况的确切原因以及对此的任何有效解决方案。

0 投票
0 回答
486 浏览

java - 组播套接字永远不会关闭

我正在某个端口创建一个 MulticastSocket,然后加入一个组。现在,只要数据包被广播,套接字就会不断接收数据包。所以我在一个while循环中调用socket.receive,这总是正确的。现在我从来没有离开过这个小组。但是如果我终止我的程序,它会自动关闭套接字吗?我需要对此进行一些澄清。

另外,如果我确实需要离开所述组并关闭套接字,我该如何实现?我试过使用 addShutdownHook

但由于某些奇怪的原因,它不起作用。

0 投票
2 回答
4922 浏览

c++ - C++ 如何加入多播 mpeg 流?

我如何设法加入地址为的多播 mpeg 流组udp://@224.1.50.15:1234?我要管理的只是与流服务器建立连接,以使服务器意识到我对这个多播组感兴趣,从而使服务器在一段时间内向我发送流数据包。

例如:在我与 VLC Player 建立与该组的连接之前,我没有收到来自该组播组的任何数据包。即使在我关闭 VLC 播放器后,我仍然会在短时间内收到来自该组的数据包。我想要做的是在没有 VLC Player 或任何其他第三方应用程序的帮助下接收数据包。

为了上述目的,我如何设法与该组建立联系。如果有可能呢?

PS:我安装了 4 个网络接口。

谢谢!

正如 Zaboj Campula 在本页回答中的建议;我改变了代码如下。这给了我一个错误 10093。

0 投票
1 回答
196 浏览

java - 如何计算加入 MulticastSocket 的客户端?

我正在使用聊天编程MulticastSocket,我将计算加入此的客户数量。

是否MulticastSocket有为此目的的一些功能?

0 投票
2 回答
320 浏览

java - Java 获取 MulticastSocket.receive 以抛出 ClosedByInterruptException

我有一些代码从多播套接字读取数据,直到用户定义的结束时间。Thread.interrupt如果线程通过调用(或您可以提出的任何其他用户启动的操作)中断,我也想停止读取数据。我不知道如何在线程中断时获得通知。现有代码如下:

我看到有一个DatagramSocket.getChannel返回 a 的方法DatagramChannel,所以我自然假设该类型用于读取/写入底层套接字。这个假设是不正确的,这意味着MulticastSocket没有实现InterruptibleChannel. 因此,MulticastSocket.receive从不抛出ClosedByInterruptException.

我在网上搜索了示例,但无法弄清楚如何修改上述代码以使用 aDatagramChannel而不是MulticastSocket. 我需要帮助的问题是:

  1. 如何在 DatagramChannel 上设置 SO_TIMEOUT 参数?
  2. 如何将a 转换InetAddressNetworkInterface对象?

以下是我对如何将实现从 转换MulticastSocketDatagramChannel以满足我的要求的最佳猜测:

这种方法甚至会奏效吗? DatagramChannel.receive没有SocketTimeoutException列为它能够抛出的异常之一。如果这可行,那么请让我知道我需要如何将第二个实现更改为与第一个实现等效,但能够ClosedByInterruptException在客户端调用Thread.interrupt. 如果没有,那么是否有人对我如何满足在预定义时间停止数据报接收的要求有任何其他想法,同时还提供一种通过用户交互停止执行的方法?