У меня проблема.java timeout thread для подключения к неправильному серверу
Я хочу подключиться к Игровому серверу с IP-адресом, который вводит пользователь. До тех пор, пока сервер является правильным или сервер не существует, все в порядке, у меня есть соединение или исключение.
Проблема в том, что если я ввел IP-адрес существующего сервера, который не запускает мою игру. В этом случае программа остается в событии соединения и не реагирует ни на что. Я думал о создании таймера-нитки, хотя это не сработало. Программа не реагирует на какие-либо входные данные пользователя и только позволяет закрыть ее.
Я реализовал клиент как нить и таймер как нить. Timer-Thread должен остановить клиент-нить, если она не работает.
Мой Таймер:
public class Timer extends Thread{
private int counter;
private Coplayer client;
Timer(int i, Coplayer c){
if (i>=0) {
counter = i;
} else {
counter = -i;
}
client = c;
}
@Override
public void run(){
if (counter>0) {
counter -= 1;
} else {
client.stop();
}
}
и мой клиент:
try {
Timer t1 = new Timer(100, this);
client=Network.connectToServer(ip,port);//this is the line the programm halts
t1.stop();
client.start();
connected = true;
Serializer.registerClass(Message_String.class);
Serializer.registerClass(Message_Player.class);
CL = new ClientListener();
client.addMessageListener(CL, Message_String.class);
client.addMessageListener(CL, Message_Player.class);
return "Verbunden.";
} catch (java.net.ConnectException e){
connected = false;
return "Verbindung konnte nicht hergestellt werden.";
} catch (java.net.UnknownHostException e){
connected = false;
return "Server nicht bekannt.";
} catch (IOException ex) {
connected = false;
return "Falsche Eingabe.";
}
Я использую JAVA с Jmonkey, если это имеет значение.
Где метод Network.connectToServer определен? Такие методы должны иметь аргумент тайм-аута. – lbalazscs
Это метод от spidermonkey. Я не нашел никакой информации, если у нее есть таймаут, но он вызывает исключения, которые я ловил. Но на неправильном сервере нет никаких исключений, но нет связи. Я могу указать игру, сервер должен работать, но это не помогает, но ничего не работает. – iova
для получения дополнительной информации см. В моем поиске и устранении неисправностей на http://hub.jmonkeyengine.org/t/check-server-game-id/31342/3 , но там мы также не нашли решения, поэтому я - спрашиваю вас. – iova