В настоящее время я использую Java-реализацию протокола Reliable UDP, который можно найти здесь [1]. В проекте нет абсолютно никаких учебных пособий, поэтому мне было очень трудно определить проблемы.
Я настроил клиент и сервер. Сервер работает на локальном хосте: 1234, а клиент - на локальном хосте: 1235. Сервер сначала устанавливается и прослушивает соединения.
Затем я настроил его отправку пакета на сервер. При отправке пакета сервер вызывает handlePacket () -
DataInputStream i = new DataInputStream(client.getSocket().getInputStream());
short packetID = i.readShort();
i = null;
switch(packetID){
case 3:
Packeta packeta = new Packeta(client);
break;
}
} catch (IOException e) {
e.printStackTrace();
}
В настоящее время я использую отладку с небольшим фиктивным классом под названием Packeta. Когда конструктор вызывается, он читает из потока и логи на консоль. Однако всегда при построении зависает на 10 секунд, прежде чем выдает ошибку -
java.net.SocketException: сокет закрыт ....
в
lessur.engine.net.packets.Packeta. (Packeta.java:15)
Конструктор для Packeta -
public Packeta(LessurConnectedNode c) {
super((short)3, c);
try {
/*LINE 15*/ Logger.getLogger("adsfas").info("X was "+c.getSocket().getInputStream().read());
} catch (IOException e) {
e.printStackTrace();
}
}
В нем есть что-то связанное с входными потоками. Я не знаю, что не так, но при чтении других тем может возникнуть проблема с несколькими входными потоками. Я заблудился в этом, пожалуйста, помогите.