问题标签 [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.
java - Android 多播套接字发送正在丢弃数据包
我有一个应用程序在加入特定 IP 组后不断在多播套接字中发送数据。发送数据包几个小时后,它突然停止发送数据。从 java 套接字发送成功,但 tcpdump 中没有数据包信息以及网络数据包捕获。我已经调试到 datagramsocketimpl 类,似乎没有任何问题。在那之后的某个地方怀疑这个问题。有没有人看到这个问题?数据包只是没有到达 wifi 驱动程序。该问题随机发生,没有特定程序。
c - C中的多播udp套接字实现
我想在服务器端和客户端使用多播套接字。服务器将发送数据,客户端将接收数据。同时,如果数据丢失,客户端会向服务器发送 nack 数据包,服务器会收到 nack 数据包。我应该如何实现这一点,一个多播组和一个套接字端口,两个多播组和两个套接字端口?我希望服务器可以同时发送数据并接收 nack,这可能吗?
谢谢
java - 使用 Java 的 UDP 多播:整个多播组无法接收到消息
我试图了解多播是如何工作的,因此我正在尝试一下。
情况
我构建了一个简单的服务器,它MulticastSocket
在端口 1250 上侦听。它只是回显它接收到的消息。
接下来,我构建了一个简单的客户端,也带有一个MulticastSocket
,监听端口 4711。它向服务器发送一个 String-Message 并等待任何返回的消息。
预期行为
我希望两个或多个客户端向服务器发送他们自己的唯一消息并接收服务器发送回侦听端口 4711 的多播组的所有响应。
观察到的行为/问题
一旦我启动了多个客户端实例,来自服务器的所有响应仅由加入该组的第一个客户端接收。在端口 4711 上加入多播组的所有其他客户端都不会收到任何内容。为什么会这样,我该如何解决这个问题?
结果是这样的(可以看到只有MulticastEchoClient2进程接收到服务器的响应):
代码
服务器代码
客户代码
实用程序类
java - 如何在 Java 中重新加入多播组
我有一个场景,当我的多播侦听器加入组时,路由器可能会关闭。在那种情况下,多播消息将永远不会到达侦听器。
所以我打算让监听器超时,然后重新加入多播组。
问题是下面的代码并不能保证监听器成功注册并接收到多播消息。
那么,我需要做些什么来确保侦听器重新注册到路由器?
java - 多播聊天,在主机/侦听器的 GUI 中获取发件人的登录名/PC 名称
帮帮我,我能够在主机/侦听器系统中获取发件人的 IP 地址,如何获取发件人的姓名,我认为应该是“packet.getHostName(string ip-address)”,其中数据包是数据包的引用侦听器从发送者那里收到。我能够通过“packet.getAddress()”获取发件人的 IP。
下面是代码:
c - 通过无线网络使用多播套接字的 UDP
我用多播套接字编写了一个简单的 udp 服务器客户端应用程序。服务器每 6 毫秒向三个客户端发送数据包。数据包大小为 1200 字节。这是每秒 166,66 个数据包。每当其中一个客户端检测到丢失的数据包时,它都会通过单播向服务器发送一个 NACK 数据包。
第一次测试: 服务器和三个客户端通过以太网连接到路由器 TP-Link TL-WDR4300 (dd-wrt),一切正常。
第二次测试: 只有服务器通过以太网连接到路由器,其他客户端通过无线 2.4 GHz 和固定信道连接。无线出现了两个问题:第一个问题是丢包,客户端只接收到 50% 的数据包。并且丢失出现在突发中,例如收到 400 个数据包,丢失 200 个等。第二个问题是,当客户端将 NACK 数据包发送回服务器时,我可以在 Wireshark 上看到,但我的应用程序无法接收它们。这很奇怪,因为代码与客户端通过以太网连接时的代码相同。那么,有什么想法吗?我会很感激
服务器代码:
我还进行了更新以减少流量:数据包大小:800 字节数据包之间的到达时间:10 毫秒 = 每秒 100 个数据包 = 0.076 MB / s
我测量了服务器端和客户端的流量:服务器 ~ 10 MB/s 客户端 ~ 5 MB /s
一切似乎都很好
android - 在android中共享时网络接口没有地址
我正在尝试在 Android 上设置广播或多播服务器,同时它充当热点。在广播的一些初始问题(接收网络无法访问的错误)之后,我发现这对于 Android 来说是正常的,所以我选择通过多播来实现它,因为我们认为无论如何这是更可取的。当我这样做时,我收到以下错误:
我理解这意味着什么,但是当我在热点处于活动状态时使用netcfg
ADB Shell 中的命令检查接口时,我看到以下内容:
所以我不明白为什么在运行时我得到一个没有地址相关的异常,但 shell 命令显示一个,除非是因为 Android 试图以某种方式阻止我。任何帮助了解正在发生的事情以及我如何在此界面上成功打开多播套接字都会很棒。我尝试如下打开它:
c - UDP 多播套接字在 linux 64 位平台上不起作用
我编写了一个非常小的 C 代码来打开一个 UDP 多播套接字,它在 32 位平台上运行良好,但是当我重新编译我的代码并在 linux 64 位平台上尝试它时它不起作用。该程序在 recvfrom() 函数上无限期挂起。我使用 tcpdump 检查了是否在指定的网络接口上实际收到了 udp 帧,但一切正常。有人知道我的代码有什么问题吗?
这是第一个代码(在您的评论之前):
编辑:我用你的评论更新了我的代码,但它也不起作用:(另外,我忘了说网络正在使用 VLAN。网络接口是 66.46.40.100 的 eth.40,但它在 32 位平台上工作所以这可能不是问题。
这是新代码:
java - Java Multicast Socket Receiver 不能在两台机器上工作
我正在尝试通过 Internet 实现多播通信。这是我的代码
首先发送然后接收 5 次代码:
只接收:
该代码在一台机器上工作,但是当我尝试在另一台机器上运行接收器时,它没有收到任何东西。我不知道我要去哪里错了?我搜索了一些解决方案,他们说将 networkInterface 添加到套接字,但这也不起作用。
操作系统:Windows 8.1
我也在使用代理(如果这可能是问题)
java - MulticastSocket 接收消息两次
我通过 MulticastSocket 向 WIFI 接入点发送消息,并且总是得到两次回复。如果我尝试向自己发送消息,我会再次收到两次消息。这是我的接收器代码:
我尝试通过 DatagramSocket 和 MulticastSocket 发送 - 无论如何。我总是收到两次消息。我不明白为什么!
编辑:我的 LogCat:
EDIT2:发件人代码