Я хочу запросить у игрового сервера его игровой счет. Это изображение показывает, какую информацию вы можете получить с сервера.
Я использовал этот код до сих пор:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
public static void main(String[] args) {
String hostname = "85.190.155.70";
int port = 27017;
try {
InetAddress address = InetAddress.getByName(hostname);
DatagramSocket socket = new DatagramSocket();
byte[] readonly = { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 0x54, 0x53, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x20, 0x45, 0x6E, 0x67, 0x69, 0x6E, 0x65, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 0x00 };
DatagramPacket request = new DatagramPacket(readonly, readonly.length, address, port);
socket.send(request);
byte[] receiveData = new byte[900];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket);
String sentence = new String( receivePacket.getData(), 0, receivePacket.getLength(), "utf-8");
System.out.println("RECEIVED: " + sentence);
socket.close();
} catch (SocketTimeoutException ex) {
System.out.println("Timeout error: " + ex.getMessage());
ex.printStackTrace();
} catch (IOException ex) {
System.out.println("Client error: " + ex.getMessage());
ex.printStackTrace();
}
}
Моя проблема в том, что я просто получаю типы строк (те, что на изображении; Имя сервера, Карта, Папка, Игра, Версия) в качестве ответа. Вот что я получаю в точности (не могу скопировать и вставить):
Что я должен изменить, чтобы получить количество игроков в ответ?
Дополнительная информация:
Сервер использует Протокол запросов к серверу Valve