问题标签 [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.
c++ - 如何在 C++ 中实现多播套接字
我是 ac# 程序员,我需要在 C++ 中实现一个多播套接字。
我尝试用谷歌搜索它并没有找到太多帮助。
因此,如果有人能给我一些链接到一个好的 c++ 多播套接字教程,我们将不胜感激。
我的 c# 套接字实现如下所示:
我想我在 wcf 中找到了一些关于它的东西,但我找不到一个好的教程。
java - Java MulticastSocket导致空指针异常
我试图让一个多播套接字在“服务器”应用程序上工作,它会在一堆安卓手机上吐出信息。负责设置套接字并发送一些数据的代码片段如下:
发生的情况是它到达multisocket.send(packet);
线路并死于以下堆栈跟踪信息:
...我不知道为什么。
我确实有一个问题(并且原谅它的不公平) - 您在多播套接字中设置的 IP 地址只是一个占位符,还是您真的必须将您的 IP 地址设置为那个?我有一半人认为你可能不知道——另一半人在尖叫相反——但当我在谷歌上搜索答案时,我找不到任何可以证实的东西——只是它必须是一个相当窄范围内的地址。如果我弄错了(我的 IP 是 192.168.1.3),那是问题所在吗?或者是别的什么。
提前致谢
史蒂夫
c - 客户端服务器套接字编程
大家好
我是套接字编程的新手..
我有两个程序。接收和发送接收。
在 RECEIVE 中,我只是编写了用于使用 resvfrom(.....) 从充当服务器的程序接收数据的代码,而在后面的代码中,我编写了用于从充当服务器的程序接收一些 msg 的代码,使用 resvfrom(.. ...)我也使用 sendto(......)将相同的数据发送回该服务器程序。
我正在使用多播地址为 224.0.0.5 和端口为 4545 的 linux 机器。
我的程序运行良好,但问题是:
首先我的 RECEIVE 程序正在接收数据,然后我的 SENDRECEIVE 程序接收和发送数据。
但它运行无穷......我将我的代码包含在 while(1){.......} 中。
现在问题是什么???
我的关闭(.....)套接字是否没有为 SENDRECEIVE 程序调用。
如果是,我将如何使用哪些条件关闭我的套接字,以便它在从服务器接收到消息并将其发送回 RECEIVE 程序后终止......
“这次我不能发送整个代码,但逻辑是……在 setsocketopt(.....)
你能不能尽快帮帮我……”
java - java中的MulticastSocket:一直是BindException
我正在编写一个基本应用程序,一个聊天,它根据情况使用多播和单播通过网络发送消息。到目前为止,没有问题,直到前一段时间我开始 MulticastSocket 部分。运行此基本代码时出现 BindException(我删除了与我的问题部分无关的所有其他方法):
当我运行这段代码时,出现以下错误(我将 225.1.1.1 和 4567 放在 GUI 中):
无论我放置哪种 IP 和端口组合,总是会得到相同的错误。我什至重新启动了我的电脑,它没有做任何改变。
注意:要测试,我在我的类中右键单击包视图中的 main,然后“运行为 -> Java 应用程序”。当我这样做时,Eclipse 会制作某种虚拟机,还是只使用环回地址 127.0.0.1 或其他什么?当我打印 InetAddress.getLocalHost() 的结果时;我有“akee-netbook/127.0.1.1”。由于我使用单播和多播,也许它只使用环回地址,并尝试绑定已经绑定的地址。如果是这样,我该如何正确测试我的应用程序?我不知道我是否清楚,如果没有,请告诉我!
最后一件事,为什么我打印我的 IP 地址时会有斜线?以后会不会有问题?还是来自 toString() 方法?
php - PHP 多点环回
我正在尝试使用带有套接字的 PHP(不幸的是它必须在 PHP 中)来实现简单的应用程序。我有一个页面 - 假设 multi.php 和页面 client.php 的许多实例我不想从一个没有文件或数据库的 multi.php 实例向 client.php 的所有实例发送一些数据。
我尝试使用多播(使用多播地址从 multi.php 发送一些数据)来做到这一点,但它不起作用。我无法与 client.php 的任何实例通信
先感谢您
java - 如何在 Android 上接收多播消息?
我的电脑上有一个非常简单的绘图应用程序,它存储点并为每个点绘制一个椭圆。
我正在尝试将其发送到一个 android 应用程序,该应用程序将接收每个点的坐标,然后绘制椭圆。
现在我正在使用多播套接字,但它似乎不起作用。恐怕我错过了什么。
两个应用程序中的 InetAddress 和端口相同:234.235.236.237 和 9876
在我的 PC 应用程序中,MultiCastSocket 初始化代码如下所示:
当我想发送坐标时,我调用这个方法:
然后我的 Android 应用程序如下所示:
当我想发送一条消息时,我称之为它,这与 pc applikacation 中的非常相似
然后 Client 类使用以下代码监听套接字:
问题是我收到了我自己从 android 应用程序发送的消息,但我没有收到从 PC 发送的消息。所以我猜它与连接有关。
我已经
在 AndroidManifest中设置了android.permission.CHANGE_WIFI_MULTICAST_STATE
和。android.permission.INTERNET
我希望我提供的信息已经足够了。
我正在使用模拟器和android 2.2。
题外话:我不太了解 MulticastSockets 是如何工作的,我该如何选择 D 类 IP 和端口?
java - 如何最小化 UDP 数据包丢失
我每秒接收约 3000 个 UDP 数据包,每个数据包的大小约为 200 字节。我编写了一个 java 应用程序,它监听这些 UDP 数据包并将数据写入文件。然后服务器以先前指定的速率发送 15000 条消息。写入文件后,它仅包含约 3500 条消息。使用wireshark,我确认我的网络接口收到了所有15000条消息。之后我尝试更改套接字的缓冲区大小(最初是 8496 字节):
该更改将保存的消息数量增加到约 8000 条。我不断将缓冲区大小增加到 1MB。之后,保存的消息数量达到了 ~14400。将缓冲区大小增加到更大的值不会增加保存的消息数量。我想我已经达到了允许的最大缓冲区大小。不过,我需要捕获我的网络接口接收到的所有 15000 条消息。
任何帮助,将不胜感激。提前致谢。
java - Java MulitcastSocket 接收方法“阻止程序”?
我正在用 Java 编写一个类来简化连接、加入、发送和接收来自多播组的数据的过程。在这一点上,我遇到了receive()
JavaMulticastSocket
类中的方法的问题。每当我使用这种方法时,整个程序都会暂停,直到收到数据。
我想知道是否有一种方法可以让它只听给定的持续时间,比如 5 秒?
这是我正在做的一个非常基本的代码示例。请注意,它根本不像我的实际代码,除了异常捕获、导入语句等......它只是展示了我的类的基本流程,它如何利用 Java 的多播能力:
感谢您的时间。
c# - 如何在 Windows PGM 套接字中禁用环回?
我正在使用具有 RDM 套接字类型的标准 Windows PGM 套接字实现(也称为“MSMQ PGM”)。我注意到,根据此Microsoft 链接,无法设置MulticastLoopBack套接字选项。
换句话说,相当熟悉的语法:
将抛出一个无效的参数错误。
有人知道在 PGM 套接字实例上禁用多播环回的任何替代方法吗?从最干净的单线到注册表黑客的任何内容都将受到欢迎。
java - Java 多播套接字在 Windows 上不起作用(SocketPermission 异常)
在 Windows 上启动多播 java 套接字时,出现以下错误(防火墙已停用):
java.security.AccessControlException:在 java.security.AccessController.checkPermission(Unknown Source) 在 java.security.AccessControlContext.checkPermission(Unknown Source) 的访问被拒绝 (java.net.SocketPermission 230.0.0.1 connect,accept,resolve)。 lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkMulticast(Unknown Source) at java.net.MulticastSocket.joinGroup(Unknown Source) at ch.uzh.ifi.group10.client.ServiceBrowser.(ServiceBrowser.java :49) 在 ch.uzh.ifi.group10.server.RMIServer.startServer(RMIServer.java:176) 在 ch.uzh.ifi.group10.server.RMIServer.main(RMIServer.java:279)
似乎我无法加入多播组,因为程序没有套接字的权限。有趣的是,相同的代码在 linux (ubuntu 11.10) 上没有任何问题。我还尝试向 security.policy 文件添加套接字权限(Permission java.net.SocketPermission "230.0.0.1", "connect, accept, listen, resolve";)这也没有帮助。
我被困住了,因为我找不到任何其他可能出现问题的地方或我错过了什么......有什么想法吗?