nfqeueueからパケットを取得し、ソケットをethカードに開いてパケットを送信することで、ブリッジを実装します(途中にロジックがあります)。
私はcppと低レベルに慣れていないので、愚かな質問をするかもしれません。
私が正しいことを理解しているなら、私はすべてのパケットのソケットを開閉するべきではありません。この例に基づいてコードを記述します-http://austinmarton.wordpress.com/2011/09/14/sending-raw-ethernet-packets-from-a-specific-interface-in-c-on-linux/
私はこのようにソケットを開きます:
sockfd = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW))
私の質問は次のとおりです。1。ソケットはどのくらいの期間生きていますか? 2.ソケットがまだ開いているかどうかを確認するにはどうすればよいですか?3.どうすれば閉じられますか?シャットダウンを見ましたが、これがAPIかどうかわかりませんでしたか?4.誰かが私を本番レベルの例に導くことができますか。ソケット例外を処理することを意味します..。
ありがとうございました