我使用下面的Java代码,试图发送一个PACKET_UDP_CLIENT_FIND_SERVER(source)数据包来查询OpenTTD服务器:查询的OpenTTD服务器
InetAddress address = InetAddress.getByName("publicserver-new.openttdcoop.org");
DatagramSocket socket = new DatagramSocket();
byte[] buf = new byte[]{0}; // 0 is number for CLIENT_FIND_SERVER, no extra data is needed (?)
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 3983);
socket.send(packet);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
packet.getData(); //
socket.close();
然而,当我运行该程序的服务器永远不会返回任何数据包。我几乎没有使用数据包的经验,并一直试图找出PHP and Python source code做同样的事情要做什么。希望有人能够提供帮助。
感谢
编辑: 我意识到,包实际上应该包含数据03 00 00
,前两个字节包含的长度,但我还是一直没能得到使用分组发送的响应。也许我正在听错端口?
在旁注中,因为我对OpenTTD感兴趣,您的意思是Op运输大亨豪华游戏? – 2014-10-11 03:57:20
@ArunRamakrishnan是:http://www.openttd.org,由于版权原因,官方名称是OpenTTD – 2014-10-11 04:00:27
哦,太棒了!我原来是在aaaaaaaages之前。我听说过OpenTTD,但从未尝试过。感谢您的链接,我想我现在会尝试。对不起,侧重于你的问题虽然:) – 2014-10-11 05:39:40