【问题标题】:pcap_sendpacket fails with error "send:try again"pcap_sendpacket 失败并出现错误“send:try again”
【发布时间】:2019-06-28 22:04:32
【问题描述】:

我正在尝试在 while 循环中使用 pcap_sendpacket api 发送数据包,并且我成功发送了数据包。我在两者之间添加了一些睡眠来控制发送速率。

现在,如果我移除睡眠并尝试尽可能快地发送,我会在 pcap_sendpacket api 中遇到错误,其中一半的数据包显示 "send: try again"。我想知道它为什么会失败。有什么方法可以让我了解更多吗?

我检查了手册页,sendpackets 返回 -1 是否有错误,并且使用 pcap_geterr 我收到了上述消息。返回值 -1,并没有说明它失败的原因。我检查了 pcp 库,但看不到任何此类错误消息。如何进一步处理?

【问题讨论】:

    标签: c linux ethernet libpcap


    【解决方案1】:

    您可能正试图以比它们发送到网络的速度更快的速度发送数据包,在操作系统上,用于发送原始数据包的调用确实阻塞,如果它使用的任何缓冲区已满然后你尝试发送另一个数据包。

    您可能需要在pcap_sendpacket() 调用之间插入短暂的延迟。

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 2012-09-24
      • 2013-07-18
      • 2021-10-12
      • 2020-10-23
      • 2020-07-20
      • 2011-05-25
      • 2016-02-20
      • 2011-12-28
      相关资源
      最近更新 更多