我正在使用Java 8,Spring Rest API和Angular。我有byte [] binaryData,它是从数据类型为varbinary的DB(Postgres)中的列中检索的。我想创建一个新的“ .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的工作方式。
我无法触及可以创建和归档并成功返回文件的部分。
如何获取我的binaryData(byte [])解析为新的pcap文件?
PS:请不要将其标记为重复,或者我已经浏览完所有问题的内容。他们中的许多人都没有答案,或者解决方案都不适合我的问题,即使在某些情况下,指向解决方案的链接也已删除。