0

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' の要求

4

2 に答える 2