2014-03-04 122 views
-1

我是Android编程的初学者。我想用这个方法:如何使用Socket方法?

Socket socket; 
socket.getInetAddress() ; 

我想在一个TextView IP地址打印到我连接的。 这可能吗?我应该怎么做?

谢谢!

我想这一点,但没有工作

public void onClick(View v) { 

    Socket s = new Socket(); 
    String host ="10.10.20.xxxx"; 

try { 
    s.connect(new InetSocketAddress(host, 6000), 1000); 

    InetAddress inetAddress = s.getLocalAddress(); 
    String ip = inetAddress.getHostAddress(); 
    //Now, I would like to have printed out the IP-address 
    Toast.makeText(getBaseContext(), ip , Toast.LENGTH_SHORT).show(); 
//But nothing happens 
} catch (IOException e) { 
    e.printStackTrace(); 
    } 
} 
} 
+1

您能向我们展示您已经尝试过的吗? –

+0

感谢Philippe的编辑,我更新了我的问题。 – ulyssessPax

+0

你是否能够制作一个常规的“吐司”信息? –

回答

0

要获得一个套接字连接到主机的地址,你应该使用getInetAddress()而非getLocalAddress()。因此,您的代码可能如下所示:

public void onClick(View v) { 

    Socket s = new Socket(); 
    String host ="10.10.20.xxxx"; 

    try { 
     s.connect(new InetSocketAddress(host, 6000), 1000); 

     InetAddress inetAddress = s.getInetAddress();  // <---- Here! 
     String ip = inetAddress.getHostAddress(); 

     Toast.makeText(getBaseContext(), ip , Toast.LENGTH_SHORT).show(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+0

现在试试这个解决方案,谢谢! – ulyssessPax

+0

我试过这段代码,但是没有消息出现 – ulyssessPax

+0

你可能会得到一个异常并且没有看到它(因为try ... catch)。尝试向'catch'添加'Toast.makeText(getBaseContext(),“ERROR”,Toast.LENGTH_SHORT).show();'以帮助您调试。 –