2016-11-03 16 views
0

У меня есть список серверов радиуса, работающих на каждом Datagram Socket, и у меня есть список серверов начального радиуса, доступных мне. У меня есть требование, когда мне нужно проверить, остановлен ли какой-либо конкретный сервер, и если он остановлен, мне нужно его перезапустить. Ниже приведен код, который я пишу, но не уверен, что это правильный способ сделать это. Пожалуйста, совет.Как проверить, работает ли какое-либо приложение в порту датаграммы?

....

int port = radiusServer.getAggregation() 
         .getAuthenticationPort(); 
       try { 
        // It will throw IO exception if no application is 
        // running 
        // on that 
        // port. 
        new DatagramSocket(port); 
        LOGGER.info(
          "There is a server running on the Port number {}.", 
          port); 
       } catch (IOException e) { 
        LOGGER.error(
          "Server is not running on port number {}.", 
          port); 
        startServer(radiusServer); 
       } 

....

+0

{попробуйте { \t \t \t \t \t \t // Он будет бросать IO исключение, если приложение не является \t \t \t \t \t \t // работает \t \t \t \t \t \t // на этом \t \t \t \t \t \t // порт. \t \t \t \t \t \t DatagramSocket ds = new DatagramSocket (port); \t \t \t \t \t \t ds.close(); \t \t \t \t \t \t LOGGER.warn ( \t \t \t \t \t \t \t \t "Сервер не запущен на номер порта {} Запуск сервера"., \t \t \t \t \t \t \t \t порт); \t \t \t \t \t \t startServer (radiusServer); \t \t \t \t \t} поймать (IOException е) { \t \t \t \t \t \t, если (LOGGER.isDebugEnabled()) { \t \t \t \t \t \t \t LOGGER.debug ( \t \t \t \t \t \t \t \t \t «Существует сервер, уже запущенный на Por t number {}.» \t \t \t \t \t \t \t \t \t порт); \t \t \t \t \t \t} \t \t \t \t \t}} – Mohit

ответ

0

Ниже решение работает отлично.

  try { 
        // It wont throw IO exception if no application is 
        // running 
        // on that 
        // port. 
        DatagramSocket ds = new DatagramSocket(port); 
        ds.close(); 
        LOGGER.warn(
          "Server is not running on port number {}. Starting Server", 
          port); 
        startServer(radiusServer); 
       } catch (IOException e) { 
        if (LOGGER.isDebugEnabled()) { 
         LOGGER.debug(
           "There is a server already running on the Port number {}.", 
           port); 
        } 
       } 

 Смежные вопросы

  • Нет связанных вопросов^_^