2014-10-12 29 views
-1

有沒有辦法從InputStream打開離線Pcap而不是從本地文件打開?JNetPcap從InputStream打開pcap

在文檔中,它表示您可以使用pcap_fopen_offline()從開放式流打開Pcap,但我不知道如何使用它。

+0

該文檔是否附帶示例?至少,這個函數的簽名是什麼?它可能使用文件句柄,而不是'std :: ifstream'。 – 2014-10-12 09:50:13

回答

0

pcap_fopen_offline(3)是一個C API,JNetPCap作爲一個包裝器(你應該注意到這個事實,因爲命名約定與Java API截然不同!)除非你用C編寫,否則你不能直接訪問它JNetPCap(也許你可以用JNI/JNA訪問它,但這與C編碼沒什麼兩樣)

此外,當關於C API的文檔談論「流」時,它幾乎總是C術語中的「文件流」 。它不一定意味着來自文件系統中的文件的數據流,但基本上需要流利地使用C來使用除STDIN/OUT或文件系統中的文件以外的其他任何內容。我很快瀏覽了JNetPCap的Javadoc,但我不認爲它可以爲您將一般的InputStream轉換爲C的文件流。

+0

嗨,謝謝,所以如果我從數據庫中獲取文件作爲InputStream,我將不得不將它寫入磁盤然後打開它?或者有什麼辦法可以解決這個問題? – 2014-10-12 16:55:50

+0

@AmirRossert我擔心這是唯一的方法。我在'jnetpcap-src-1.4.r1425-1'的源代碼目錄下'''''''''''''' JNetPCap只調用'pcap_open_offline()'。 – nodakai 2014-10-12 17:31:56