- 締切済み
パケットデータを取得したいです。
現在Cでコーティング中です。環境はWindowsのVisualstadioとなります。 winpcapを使用しているのですが、pcap_next_ex()の詳しい使い方がよくわかりません。 http://codezine.jp/article/detail/126?p=2 このようなサイトを見つけたのですが、pkt_dataにデータが保存されているようです。 これをファイルにひたすら出力を行いたいと思っています。 おそらくデータのコピーはmemsetでできると思うのですが、 char buf[9999]; int i=0; while(1){ memcpy(buf[i], , pkt_data, 5); i++; } これでちゃんと格納できているのでしょうか? printf("%s\n", buf[i]);では確認できませんでした。 また、最終的な目標はこれをバイナリデータとしてファイルに出力したいと考えております。 ofstream fout; fout.open("file.txt", ios::out|ios::binary|ios::trunc); if (!fout) { cout << "ファイル file.txt が開けません"; return 1; } // ファイルが開けなかったときのエラー表示 for(int i=0;i<9999;i++){ fout.write(( char * ) &buf[i],sizeof( char ) ); で合っていますでしょうか? しかし、これもファイルを確認したところうまく表示できていませんでした。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wr5
- ベストアンサー率53% (2173/4061)
>おそらくデータのコピーはmemsetでできると思うのですが、 memcpy()の間違い…ですよね? >memcpy(buf[i], , pkt_data, 5); コンパイルエラーになるかと思いますがいかがです? そして、5という値は一体どこから出てきたモノでしょう? >printf("%s\n", buf[i]);では確認できませんでした。 高確率で落ちますがそのヘン大丈夫でしょうか?