这是问题所在,它非常简单(理解......):
我家里有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),我如何指定我打算将此消息发送到哪一个?
我正在尝试运行此处找到的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个线程相同的例外
有人可以帮帮我吗?