2015-10-27 5 views
2

Как я могу контролировать вывод tcpflow с помощью Java? Я пробовал следующее, но он не работает с потоком tcp -c arg.Мониторинг вывода tcpflow с помощью Java?

Process process; 

try { 
    process = Runtime.getRuntime().exec("tcpflow -c"); 
    InputStreamReader ir = new 
    InputStreamReader(process.getInputStream()); 
    LineNumberReader input = new LineNumberReader(ir); 
    String line; 
    while ((line = input.readLine()) != null) { 
     System.out.println("Output: " + line); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Каким образом выходные данные tcpflow не прочитаны? Однако, если я выполняю команду tcpflow -h, выход считывается.

ответ

1

Обнаружена работа по обработке файла журнала из tcpflow.

public static void main(String[] args) { 
    File log = new File("packets.log"); 
    PacketListener listener = new PacketListener(); 
    Tailer tailer = Tailer.create(log, listener, 2500); 
    tailer.run(); 
} 

И класс, который его трогает.

public class PacketListener extends TailerListenerAdapter { 

    @Override 
    public void handle(String line) { 
     System.out.println("Inbound: " + line); 
    } 

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