【发布时间】:2011-04-30 16:41:14
【问题描述】:
您好,我编写了一个简单的代码来测试我正在执行的程序。
代码在这里:
。 . .
public static final byte precond[] = {(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF};
public static final byte aftercond[] = {(byte) 0x0a,(byte) 0x00};
String msg = new String(precond) + "challenge rcon" + new String(aftercond);
String aux = "";
//Enviar
DatagramSocket sc2 = new DatagramSocket(27020);
//sc2.setSoTimeout(5000);
DatagramPacket pkt = new DatagramPacket(msg.getBytes(),msg.length(),InetAddress.getByName("82.102.15.70"),27050);
sc2.send(pkt);
System.out.println("SENT");
//Receber
DatagramPacket pkt2 = new DatagramPacket(new byte[1024],1024);
sc2.receive(pkt2);
String recived = new String(pkt2.getData(),0,pkt2.getLength());
aux = recived.split(" ")[2].trim();
sc2.close();
System.out.println("RECIVED - " + aux);
。 . .
这是一个简单的代码,唯一的想法就是向服务器发送一个 udp 数据包,服务器会响应。
问题是,这项工作在 Windows 上,但在 ubuntu 上不起作用(服务器/桌面版,我不是在 linux 中说,因为我还没有尝试过其他 detro)。
我已经检查了与路由器相关的所有 IPtables 但我无法解决这个问题,代码运行到第一个 System.out 然后它阻塞等待响应,但 ubuntu 上的响应从未到达:S
有人可以帮忙吗?
已经在另一台服务器 (VPS) 上尝试过,但仍然是同样的问题。
问题在于第一个数据包发送!
linux 屏幕:http://img853.imageshack.us/f/linuxr.png
Windows 屏幕:http://img339.imageshack.us/f/windowsep.png
【问题讨论】: