小编Sta*_*Two的帖子

当网络上的所有计算机具有相同的公共IP地址时,如何将UDP数据包发送到特定计算机?

这是问题所在,它非常简单(理解......):

我家里有2台电脑,它们都有相同的公共IP地址(例如1.2.3.4).

我在咖啡馆(不同的网络)有一台电脑,所以它有一个不同的公共IP地址.

我想从咖啡馆的电脑发送一条消息(例如"hi")到我家里的一台电脑.

我正在使用Java,为发送者考虑以下非常简单的程序(为了简单起见,我为了简单处理了异常处理):

在主要我做:

sendPacket("hi");
Run Code Online (Sandbox Code Playgroud)

我有

void sendPacket(String message){
    DatagramSocket myServerSocket = new DatagramSocket(9000);    // server socket
    byte[] sendData = new byte[message.length()];    // build msg
    sendData = message.getBytes();
    InetSocketAddress destSocketAddr = new InetSocketAddress("1.2.3.4", 9000);    // destination socket addr
    DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, destSocketAddr);     // make packet 
    myServerSocket.send(sendPacket);    // send packet
}
Run Code Online (Sandbox Code Playgroud)

如果我的监听器(接收器)在家中的两台计算机上运行(两者都具有相同的公共IP地址1.2.3.4),我如何指定我打算将此消息发送到哪一个?

java udp network-programming ip-address packet

7
推荐指数
2
解决办法
8556
查看次数

Active MQ - HelloWorld示例异常

我正在尝试运行此处找到的hello world示例

我已经将activemq-all-5.5.1.jar添加到了库中

它通过以下警告成功构建

警告:[options] bootstrap类路径未与-source 1.6一起设置

但它没有运行,我得到了这个例外

线程"Thread-0"中的异常java.lang.ClassFormatError: java.lang中java.lang.ClassLoader.defineClass1(Native Method)中类文件javax/jms/JMSException中非本地或抽象方法中的Absent Code属性. ClassLoader.defineClass(ClassLoader.java:791)位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449)的java.security.ClassLoader.defineClass(SecureClassLoader.java:142)java.net.URLClassLoader.access $ 100( URLClassLoader.java:71)java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:423)at at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at java. lang.ClassLoader.loadClass(ClassLoader.java:356)at hw_testing.HW_testing $ HelloWorldProducer.run(HW_testing.java:69)at java.lang.Thread.run(Thread.java:722)

线程"Thread-1"中的异常java.lang.ClassFormatError: java.lang中java.lang.ClassLoader.defineClass1(Native Method)中类文件javax/jms/JMSException中非本机或抽象方法中的Absent Code属性. ClassLoader.defineClass(ClassLoader.java:791)位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449)的java.security.ClassLoader.defineClass(SecureClassLoader.java:142)java.net.URLClassLoader.access $ 100( URLClassLoader.java:71)java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:423)at at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at java. lang.ClassLoader.loadClass(ClassLoader.java:356)at hw_testing.HW_testing $ HelloWorldProducer.run(HW_testing.java:69)at java.lang.Thread.run(Thread.java:722)

...和第3和第4个线程相同的例外

有人可以帮帮我吗?

java activemq-classic jms exception java-ee

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