से ऑनलाइन है या नहीं, मैं जांचना चाहता हूं कि सर्वर एप्लिकेशन उपलब्ध है या नहीं। सर्वर शुरू होने के बाद मैं सर्वर को स्थिति बदलने तक जांचना बंद करना चाहता हूं। मेरे कोड के साथ ऐसा कैसे करें:जांच रहा है कि सर्वर जावा कोड
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' बहुत बेकार हो रहा है क्योंकि आप कभी नहीं इसे बदलने –
खैर, यह जाँच करेगा कि क्या होस्ट/पोर्ट जोड़ी उपलब्ध है, लेकिन यह जांच नहीं करेगा कुछ भी कार्यात्मक ... यह हो सकता है कि पीछे सेवारत सॉफ्टवेयर फ्यूबर है और हमेशा HTTP के लिए 500 लौटाता है, उदाहरण के लिए – fge
यह आपकी मदद कर सकता है http://stackoverflow.com/questions/9552743/proper-way-to-test-if -सर्वर-अप-इन-जावा आपका यूआरएल (URL_TO_APPLICATION) SERVER_ADDRESS + TCP_SERVER_PORT भी देख सकता है यह http://www.coderanch.com/t/205709/sockets/java/check-server –