我使用下面的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