2013-04-12 2 views
0

Я пытаюсь использовать Kryonet для создания онлайн-игры.Kryonet: открытие хоста allways return null

Когда я предоставляю ip-адрес (жестко закодированный в коде), работает соединение и отправка/прием. Но если я попытаюсь открыть сервер, он никогда не отвечает мне: метод всегда возвращает null.

Сервер:

public static int UDP_PORT = 54723, TCP_PORT = 54722; 
public static void main(String args[]) { 

    /* ***** server starting ***** */ 
    Server server = new Server(); 
    server.start(); 

    try { 
     server.bind(TCP_PORT, UDP_PORT); 
    } catch (IOException e) { 
     System.out.println("server not deployed"); 
     e.printStackTrace(); 
     System.exit(1); 
    } 
    System.out.println("server started"); 
    server.addListener(new ServerListener()); 
} 

Клиент:

public static void main(String[] args) { 
    Client client = new Client(); 

    client.start(); 
    InetAddress addr = client.discoverHost(UDP_PORT, 10000); 
    System.out.println(addr); 
    if(addr == null) { 
     System.exit(0); 
    } 

    try { 
     client.connect(5000, addr, TCP_PORT, UDP_PORT); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    for(int i = 0; i < 100; i++) { 
     client.sendTCP(new String("bouh" + i)); 
    } 

    client.close(); 
} 

Что плохого в этом коде? Обратите внимание, что мои тесты запускаются на локальном хосте. Это проблема здесь?

Спасибо за отзыв.

Джонатан

+0

Включили ли вы регистрацию, чтобы определить, почему обнаружение хоста не выполняется? http://code.google.com/p/kryonet/#Logging – Travis

+0

привет! А, прости, я не вижу этой проблемы. Моя проблема решена, когда я просто добавляю эту инструкцию в свой клиент: 'System.setProperty (« java.net.preferIPv4Stack »,« true »);' Спасибо всем! – Jonathan

ответ

0

Если у Вас есть та же проблема, я, связанная с обнаружением узлов (http://code.google.com/p/kryonet/issues/detail?id=29), а затем проверкой из проекта из SVN (вместо использования файла 2,20 почтового индекса) Исправлена ​​проблема для меня.