Android检查远程服务器是否在线

时间:2012-02-04 10:07:04

标签: java android sockets

我是Android编程新手,我一直面临本机Java中不存在的问题。当我在计算机中运行此代码时,它运行正常。但是,当我在我的设备中运行它时。我什么都没得到,我甚至试图将消息发布到UI,并且没有logcat。我不确定有什么问题。

                try{
                    Socket socket = new Socket(serverAddr, SERVER_PORT);
                    Log.i("TAG","Socket connected");    
                }catch(IOException e){
                    Log.i("TAG","Socket not connected");
                }

更新1:我刚刚更改了代码..没有什么,并意识到在2分钟左右后它会做它应该做的事情?与活着的旗帜有什么关系吗?或者无论如何我可以运行代码一两秒钟然后停止它。请理解,如果服务器已经死亡,则套接字创建行下面的代码仅在2分钟后执行。以下是我的代码:

    try{
InetAddress serverAddr = InetAddress.getByName(serverIP);   
//Line below executes with no delay
postToUI("Trying to connect to standalone server" + "\n\n");
socket = new Socket(serverAddr, SERVER_PORT);
//Line below executes after 2 minutes
postToUI("Successfully connected to standalone server" + "\n\n");

}catch(ConnectException e){
    postToUI("Socket not connected");
}catch(IOException e){
    postToUI("Socket not connected");
}   

1 个答案:

答案 0 :(得分:0)

我做了很少的Andrioid开发所以不要咬我笑脸

主机可能无法与客户端通信的可能原因

  • 主机有防火墙可能正在关闭连接(不太可能)
  • 主机可能意外关闭,例如电源故障(不太可能)
  • 主机可能无法正常移植(可能)
  • 您的andriod应用程序没有允许使用套接字的正确清单。
  • 您正在测试的andrioid设备可能已禁用互联网,可以轻松启用。
  • 主机地址如果是动态的,可能会发生变化。

对于logcat,我认为logcat只显示主线程的日志消息。但我不确定。

相关问题