gpt4 book ai didi

c - 发送原始 eth 数据包。我什么时候应该关闭套接字?

转载 作者:行者123 更新时间:2023-12-02 02:13:48 26 4
gpt4 key购买 nike

我通过从 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. socket 存活多长时间?2. 我如何检查我的套接字是否仍然打开?3.如何关闭它?我看到关机了,但我不知道这是不是 API?4.有人能给我一个生产级别的例子吗?意味着处理套接字异常...

谢谢

最佳答案

只要您有帧要发送或接收,就保持该套接字打开。用正常的 close(2) 关闭套接字.这是另一个原始套接字教程 - http://www.tenouk.com/Module43a.html

shutdown(2)仅对 TCP 有意义,与此处无关。

编辑0:

没有连接,您正在使用以太网。

帮自己一个忙,读这本书 - TCP/IP Illustrated, Volume 1: The Protocols.作者 W. Richard Stevens - 将为您省去大量的困惑。

关于c - 发送原始 eth 数据包。我什么时候应该关闭套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com