【发布时间】:2012-07-24 01:29:17
【问题描述】:
我是 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");
}
【问题讨论】:
-
我不确定,但你可以试试这个:stackoverflow.com/questions/1443166/…
-
它谈论的是活着的主机。在这种情况下,即使服务器应用程序没有监听,但是如果服务器主机还活着,那么它会很好。就我而言,我想知道我的服务器是否正在接受连接。
-
似乎抛出了一些错误。尝试在日志中查找它或将
IOException替换为Throwable。 -
如果您在 LogCat 中没有收到任何日志消息,那么您没有执行上面显示的代码。
-
@CommonsWare 在 try 块执行之前的代码。