RTP/H.264 ビデオ パケットを既存の .pcap ファイルから読み取るアプリケーションの作成を開始しました。パケット サイズを読み取る必要があります。packet->len または header->lenを使用しようとしましたが、パケットの正しいバイト数が表示されません ( Wiresharkを使用してパケット サイズを確認しています - [長さ] 列の下)。どうやってするの?これは私のコードの一部です:
while (packet = pcap_next(handle,&header)) {
u_char *pkt_ptr = (u_char *)packet;
struct ip *ip_hdr = (struct ip *)pkt_ptr; //point to an IP header structure
struct pcap_pkthdr *pkt_hdr =(struct pcap_pkthdr *)packet;
unsigned int packet_length = pkt_hdr->len;
unsigned int ip_length = ntohs(ip_hdr->ip_len);
printf("Packet # %i IP Header length: %d bytes, Packet length: %d bytes\n",pkt_counter,ip_length,packet_length);
Packet # 0 IP Header length: 180 bytes, Packet length: 104857664 bytes
Packet # 1 IP Header length: 52 bytes, Packet length: 104857600 bytes
Packet # 2 IP Header length: 100 bytes, Packet length: 104857600 bytes
Packet # 3 IP Header length: 100 bytes, Packet length: 104857664 bytes
Packet # 4 IP Header length: 52 bytes, Packet length: 104857600 bytes
Packet # 5 IP Header length: 100 bytes, Packet length: 104857600 bytes
私が試した別のオプションは、使用することです: pkt_ptr-> 私は得る:
read_pcapfile.c:67:43: エラー: 構造体または共用体ではないメンバー 'len' の要求