2016-04-05 3 views
0

У меня очень простая потребность. Я хочу прослушивать определенный порт для любой из рук, полной базовых команд администрирования, таких как «STOP» или «reboot». На данный момент я даже не забочусь о том, чтобы проверить, откуда приходят сообщения.Java-класс, который автоматически прослушивает порт для определенной строки (-ов)?

Теперь я, очевидно, могу создать серверный сервер, заставить его вызвать слушателя для каждого нового сокета, а затем буферизировать сообщения, чтобы найти то, что я ожидаю, я сделал это все до того, как это невозможно сделать.

Тем не менее, мне интересно, есть ли какой-либо Java-класс или библиотека, что делает большую часть этой работы для меня. Что-то менее надежное, как полноценный сервер JAX-RS, но все-таки написанный?

ответ

0
private void startTcpServer() { 
ServerSocket serversocket = null; 
try { 
    serversocket = new ServerSocket(TCP_SERVER_PORT); 
    //accept connections 
    Socket socket = serversocket.accept(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
    //receive a message 
    String incomingMsg; 
    while((incomingMsg = in.readLine())!=null){ 
     Log.i("TcpServer", "received: " + incomingMsg); 
     // compare incomingMsg with your list of commands 
    } 
    socket.close(); 
} catch (InterruptedIOException e) { 
    //if timeout occurs 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    if (serversocket != null) { 
     try { 
      serversocket.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

}

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