Я использую Java 8, Spring Rest API и Angular. У меня есть byte [] binaryData, который извлекается из столбца в БД (Postgres) типа данных varbinary. Я хочу создать новый файл '.pcap' как sample.pcap и вернуть этот файл в качестве ответа, чтобы этот файл был загружен в браузер.
Я получил байт [] как:
byte[] binaryData = resultSet.getBytes("col_name");
Я написал функцию, используя библиотеку jnetpcap:
byte[] binaryData = resultSet.getBytes("col_name");
написал функцию с использованием библиотеки jnetpcap:
private void pcapFile(Detail detail){
List<PcapIf> alldevs = new ArrayList<PcapIf>();
StringBuilder errbuf = new StringBuilder();
int r = Pcap.findAllDevs(alldevs, errbuf);
if (r != Pcap.OK || alldevs.isEmpty()) {
throw new DataNotFoundException("Unable to create PCAP file");
}
PcapIf device = alldevs.get(0);
int snaplen = 64 * 1024; // Capture all packets, no trucation
int flags = Pcap.MODE_PROMISCUOUS; // capture all packets
int timeout = 5 * 1000; // 10 seconds in millis
Pcap pcap =
Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);
if (pcap == null) {
throw new DataNotFoundException("Unable to create PCAP file");
}
String ofile = "sample.cap";
PcapDumper dumper = pcap.dumpOpen(ofile);
ByteBufferHandler<PcapDumper> dumpHandler = new ByteBufferHandler<PcapDumper>() {
public void nextPacket(PcapHeader header, ByteBuffer buffer,
PcapDumper dumper) {
dumper.dump(header, buffer);
}
};
pcap.loop(10, dumpHandler, dumper);
File file = new File(ofile);
}
Из которых я понятия не имею о том, как работает PcapDumper.
Я не могу добраться до части, где я могу создать, сохранить и успешно вернуть файл.
КАК получить I двоичные данные (байт []) для анализа в новый файл pcap?
PS: Пожалуйста, не отмечайте его как дубликат или что-то, что я уже просмотрел по всем вопросам. Либо многие из них остаются без ответа, либо решение не подходит для моей проблемы, даже в некоторых случаях ссылки на решение были удалены.