2
我是Android編程的新手,我一直面臨本地Java中不存在的問題。當我在我的電腦上運行這段代碼時,它運行正常。但是,當我在我的設備上運行它時,我什麼都沒有,我甚至試圖將消息發佈到UI,並且沒有用於此的logcat。我不知道什麼是錯的。Android檢查遠程服務器是否在線
try{
Socket socket = new Socket(serverAddr, SERVER_PORT);
Log.i("TAG","Socket connected");
}catch(IOException e){
Log.i("TAG","Socket not connected");
}
更新1:我只是改變了code..nothing多少,並意識到在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");
}
我不確定,但你可以試試這個:http://stackoverflow.com/questions/1443166/android-how-to-check-if-the-server-is-available – 2012-02-04 10:16:17
它談到活着的主機。在這種情況下,即使服務器應用程序不在監聽,但如果服務器主機處於活動狀態,那麼它也會很好。在我的情況下,我想知道我的服務器是否正在接受連接。 – Milan 2012-02-04 10:19:50
它看起來像引發了一些錯誤。嘗試在日誌中查找它或用'Throwable'替換'IOException'。 – 2012-02-04 12:24:20