2013-04-12 87 views
0

我嘗試使用Kryonet創建一個在線遊戲。Kryonet:發現主機allways返回null

當我給ip地址(在代碼中硬編碼),連接和sendind /接收工程。 但是,如果我嘗試發現服務器,它從來沒有迴應我:該方法總是返回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

hello! 啊,對不起,我看不到這個問題。 我的問題已解決,當我只是在我的客戶端添加此指令: 'System.setProperty(「java.net.preferIPv4Stack」,「true」);' 謝謝大家! – Jonathan

回答