2016-04-05 5 views
0

Ich habe ein sehr einfaches Bedürfnis. Ich möchte auf einen bestimmten Port für eine Hand mit grundlegenden Verwaltungsbefehlen wie "STOP" oder "Neustart" hören. Im Moment interessiert es mich nicht, zu überprüfen, von wem die Nachrichten kommen.Java-Klasse, die automatisch einen Port für bestimmte Strings abhört?

Jetzt kann ich offensichtlich eine Server-Socket erstellen, haben Sie einen Listener für jeden neuen Socket spawnen, dann Nachrichten puffern nach einem zu suchen Ich erwarte das alles bevor es nicht unmöglich zu tun ist.

Ich frage mich jedoch, ob es da eine Java-Klasse oder eine Bibliothek gibt, die das meiste für mich funktioniert. Etwas weniger robust als ein vollständiger JAX-RS-Server, aber immer noch geschrieben?

Antwort

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(); 
     } 
    } 
} 

}

Verwandte Themen