• 締切済み

soket通信において

linux環境にてc言語使用し、UDPsocket通信のプログラムを書いています。recvfrom()にて受信したパケットのヘッダ情報を出力させたいのですが、どおしたら良いでしょうか。 個人的調査した結果この辺の構造体及び関数を使用するのかと思っております。 struct ethhdr ethhdr; struct iphdr iph; struct udphdr udph; setsockopt() getsockopt() 以上、宜しくお願いします。

みんなの回答

  • i-kujou
  • ベストアンサー率50% (13/26)
回答No.1

要はUDPパケットのパケットモニタリングツールを作りたい、ということでしょうか? そこまで言っているのでしたら殆ど終わりな気もしますが setsockopt()にて無差別受信モードをセットすることによって、UDPヘッダーの情報もrecvfromで受け取れるようになるようです。 http://www.whiteboard.ne.jp/~admin2/index.php?cmd=read&page=Linux%20socket%20%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%A5%D1%A5%B1%A5%C3%A5%C8%A5%E2%A5%CB%A5%BF%A5%EA%A5%F3%A5%B0%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0 上記サイトを参照してください。 なお、上記サイトではTCPの場合ですので、途中のTCPヘッダーと記述されているところをUDPヘッダーに読み替えて、受け取ったデータもudphdrで表示するように変更しなければいけません。

関連するQ&A