サーバアプリケーションが利用可能かどうかをチェックしたいと思います。サーバーの起動後、サーバーの状態が変わるまでチェックを止めたい。どのように私のコードでそれを行うには:Javaコードからサーバがオンラインになっているかどうかを調べる
private static final String SERVER_ADDRESS = "192.144.10.10";
private static final int TCP_SERVER_PORT = 8890;
private static boolean connected = false;
static Socket s;
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(task, 01, 5001); }
static TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
if (connected == false)
{
System.out.println(hostAvailabilityCheck());
}
}
};
public static boolean hostAvailabilityCheck()
{
boolean available = true;
try {
if (connected == false)
{ (s = new Socket(SERVER_ADDRESS, TCP_SERVER_PORT)).close();
}
}
catch (UnknownHostException e)
{ // unknown host
available = false;
s = null;
}
catch (IOException e) { // io exception, service probably not running
available = false;
s = null;
}
catch (NullPointerException e) {
available = false;
s=null;
}
return available;
}
これを解決するための任意のより良い方法はありますか?
静的フィールド 'connected'あなたは –
まあ、これはホスト/ポートのペアが利用可能かどうかをチェックしますが、それはチェックしません、それを変更することはありませんので、かなり無用のようです機能的なもの...それは、サービング・ソフトウェアが背後めちゃくちゃである可能性がありますし、常にこれはあなたを助けることができるインスタンス – fge
ため、http://stackoverflow.com/questions/9552743/proper-way-to-test-if HTTP 500を返しますあなたのURL(URL_TO_APPLICATION)はSERVER_ADDRESS + TCP_SERVER_PORTもこのhttp://www.coderanch.com/t/205709/sockets/java/check-server –