- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试让多播套接字在“服务器”应用程序上工作,该应用程序将向一堆 Android 手机发送信息。负责设置套接字并发送一些数据的代码片段如下:
private MulticastSocket multisocket;
private DatagramPacket packet;
private InetAddress addr;
private Question question;
byte[] buffer = "Some text to be sent".getBytes();
packet = new DatagramPacket(buffer, buffer.length);
try {
addr = InetAddress.getByName("228.5.6.7");
multisocket = new MulticastSocket(4446);
multisocket.joinGroup(addr);
} catch (IOException e) {
e.printStackTrace();
}
try {
System.out.println("Sending...");
multisocket.send(packet); // This is the line it dies on...
System.out.println("Text sent, closing socket");
multisocket.close();
} catch (IOException e) {
e.printStackTrace();
}
发生的情况是,它到达 multisocket.send(packet);
行并终止,并显示以下堆栈跟踪信息:
Exception in thread "SendThread" java.lang.NullPointerException: null address || null buffer
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(Unknown Source)
at Model.QuestionSendThread.run(CommServer.java:158)
...我不知道为什么。
我确实有一个问题(请原谅它的无用性) - 您在多播套接字中设置的 IP 地址只是一个占位符,还是您真的必须将您的 IP 地址设置为该地址?我一半认为你可能不知道 - 另一半则尖叫着相反 - 但我在谷歌搜索答案时找不到任何东西来证实这一点 - 只是它必须是一个相当窄范围内的地址。如果我错了(我的IP是192.168.1.3),那么这就是问题所在吗?或者是别的什么。
提前致谢
史蒂夫
最佳答案
MulticastSocket
及其 joinGroup()
用于接收多播数据包。发送组播数据包与发送常规UDP数据包到组地址相同,因此需要为每个数据包设置目的地址和端口:
packet = new DatagramPacket(buffer, buffer.length, group, 4446);
...
multisocket.send(packet);
另请参阅:
关于Java MulticastSocket 导致空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700078/
我的服务器当前能够发送和接收多播数据包。我还添加了接收和发送单播数据包的功能。因此,我创建了“DatagramSocket uniRecv”和“DatagramSocket uniSend”来模仿多播
我正在使用多播编写一个java聊天应用程序。客户端可以在它们之间进行通信,但它们也可以向服务器发送预定义的消息,服务器始终对相应的预定义消息有相同的答案。 客户端和服务器端都可以接收和发送消息。它们都
我正在尝试让多播套接字在“服务器”应用程序上工作,该应用程序将向一堆 Android 手机发送信息。负责设置套接字并发送一些数据的代码片段如下: private MulticastSocket
我正在编写一个通过 MulticastSocket 进行通信的 Android 应用程序。它基本上工作正常,但我遇到了一个奇怪的错误:每当连接中断并恢复时(例如设备短暂失去 WiFi 连接),应用程序
这个问题已经有答案了: 奥 git _a (1 个回答) 已关闭 9 年前。 我编写了一些应该从 MulticastSocket 接收数据的代码。由于某种原因,套接字永远不会接收。我已将其分解为下面的
我正在尝试在我的 PC(Ubuntu,客户端)和手机(Android,服务器)之间创建简单的多播通信。 单播/TCP 连接工作没有任何问题,定义的端口 (37659) 在 PC 和手机上均打开。尝试使
我正在研究多人游戏中服务器-客户端通信的结构。 我得出的结论是,UDP 是最佳选择,因为它采用“一劳永逸”的使用方式,即使数据包丢失也不会阻止应用程序。我还将使用 TCP 发送需要可靠性的数据包,例如
我正在尝试订阅一个特定的市场数据提要,通过 FAST 协议(protocol)以多播方式分发。在Java中,有MulticastSocket,也有DatagramChannel支持多播。 我使用的
尝试调用 MulticastSocket 上的 joinGroup(addr) 时出现 SocketException。这只发生在我们设置为在机器启动时自动启动我们的应用程序的 Windows 机器上
我在 Android 中有一个应用程序使用 MulticastSocket 进行通信。我想在 J2ME 中编写类似的应用程序,使用 MulticastSocket 通过 WiFi 与 Android
我正在尝试在 Java 上执行一个简单的多播套接字示例。 MulticastSocket s = new MulticastSocket(6789); InetAddress group = In
我有 2 个线程想要调用: multicastSocket.send(dP1) 和 multicastSocket.send(dP2) 分别,其中dP1和dP2是不同的DatagramPacket对象
我有两个线程。第一个在循环中发送带有 MulticastSocket 的数据报;第二个线程在循环中使用相同的 MulticastSocket 实例接收数据报。 它似乎工作正常,但我仍然有疑问。 这两个
我开发客户端-服务器应用程序,实时工作。服务器和客户端通过小消息交换,所以我选择 UDP 作为我的体系结构(正如网络中许多文章所建议的那样)。使用默认 java 的 DatagramSocket/Da
我有一些线程在同一个 MulticastSocket 上写入(取决于调度,可能会发生多于一个线程同时在 MulticastSocket 上写入)。我是否必须通过使用某种形式的锁定让他们在每个计时器上写
我正在尝试在创建 MulticastSocket 后加入多播组。 做类似的事情: MulticastSocket mySocket = new MulticastSocket(4444); mySoc
当一个服务器向多个客户端广播时,哪个实现更快/更有效:MulticastSocket 或 DatagramSocket? 也请大家讨论一下,谢谢! 传递的消息涉及字符串和 float 。 最佳答案 决
我正在推理我的应用程序中的多播套接字线程安全性。首先,我有多个线程共享同一个多播套接字实例,该多播套接字用于加入同一端口上的不同组。这是我的问题: 我是否必须同步对 joinGroup() 和 lea
我可能对此处的绑定(bind)一词有根本的误解,但我对 MulticastSocket 的用法感到困惑。它是构造函数。他们不会做我理解他们应该做的事情,因此任何能帮助我消除误解的人都将不胜感激。 首先
我开始使用 MulticastSocket 编写代码,尝试制作一个简单的应用程序,使用客户端和服务器来发送消息。 我为服务器准备的代码: import java.io.IOException;
我是一名优秀的程序员,十分优秀!