0
我在我的android模擬器上運行tcpdump,並且由於tcpdump在後臺運行,因此緩衝區中沒有任何數據,因此應用程序停留在此位置。 這裏是代碼的一部分:輸出緩衝區爲空,直到tcpdump被殺死
else if (tcpdumpButton.isChecked())
{
try
{
Process process1 = Runtime.getRuntime().exec("tcpdump");
DataOutputStream os = new DataOutputStream(process1.getOutputStream());
BufferedReader osRes = new BufferedReader(new InputStreamReader(process1.getInputStream()));
//ByteArrayInputStream osRes = (ByteArrayInputStream) process1.getInputStream();
// os.writeBytes("tcpdump -l port 80");
os.flush();
StringBuffer output = new StringBuffer();
try
{
while ((osRes.readLine()) != null)
{
output.append(osRes.readLine());
output.append("\n");
}
}
catch (Exception e)
{
throw e;
}
process1.waitFor();
tv.setText(output);
setContentView(tv);
}
catch (Exception e)
{
throw e;
}
任何幫助嗎?
您正在開始'tcpdump'子進程。什麼使它終止? – erickson 2010-09-08 06:51:54
我不希望它終止,因爲我想捕獲所有的數據包 – Jony 2010-09-08 06:57:13