Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用套接字方法?_Android_Sockets_Methods_Textview_Ip Address - Fatal编程技术网

Android 如何使用套接字方法?

Android 如何使用套接字方法?,android,sockets,methods,textview,ip-address,Android,Sockets,Methods,Textview,Ip Address,我是Android编程的初学者。我想用这个方法: Socket socket; socket.getInetAddress() ; 我想在文本视图中打印我连接的IP地址。 这可能吗?我该怎么做 谢谢 我试过了,但没用 public void onClick(View v) { Socket s = new Socket(); String host ="10.10.20.xxxx"; try { s.connect( new InetSocketAddress( host

我是Android编程的初学者。我想用这个方法:

Socket socket;
socket.getInetAddress() ;
我想在
文本视图中打印我连接的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();
    }
}
}

要获取套接字连接到的主机的地址,应使用而不是
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();
    }
}
public void onClick(视图v){
套接字s=新套接字();
字符串host=“10.10.20.xxxx”;
试一试{
s、 连接(新的InetSocketAddress(主机,6000),1000);

InetAddress InetAddress=s.getInetAddress();//您能告诉我们您已经尝试了什么吗?感谢Philippe的编辑,我更新了我的问题。您能让一条常规的
Toast
消息出现吗?始终先尝试最简单的方法,然后根据结果进行构建。例如,首先尝试打印“Hello!”在
土司中
。如果这样做有效,那么继续使用
套接字
之类的东西。我在下面给出了答案,但我不明白您为什么要这样做,因为看起来您已经知道要连接的服务器的地址。(
字符串主机=…
)。现在,请尝试此解决方案,谢谢!您可能会遇到异常,但没有看到它(因为出现了
try…catch
)。请尝试将
Toast.makeText(getBaseContext(),“ERROR”,Toast.LENGTH_SHORT)。show();
添加到
catch
,以帮助您调试此问题。