zydovech 发表于 2015-01-12 10:58

sendto返回值成功,却发不出去包,而且每次都是前两个包。

   最近用netlink从内核态发送信息到用户空间,在用户空间通过UDP把从内核收到的数据发送到另一台电脑上,但是经常会出现丢包。。而且每次丢的包都是从内核接收到的前两个包(sendto的返回值是成功的,这个不是代表已经把数据拷贝到内核了吗)。我利用wireshark抓包,发现根本就没有发送出去。这是为什么?

qxhgd 发表于 2015-01-13 11:30

查看下eth口的统计,看是否有增加

qxhgd 发表于 2015-01-13 11:30

查看下eth口的统计,看是否有增加

jhl19880722 发表于 2015-01-13 21:37

看看recvmsg返回值是不是0

zydovech 发表于 2015-01-14 11:08

回复 3# qxhgd
这个eth的统计是什么意思?


   

zydovech 发表于 2015-01-14 11:13

回复 4# jhl19880722

这个都是查看了的,sendto返回值都是对的。。这个会不会和ARP有关?我看了一下,丢第一个包的时候,都是要进行ARP的,没有进行ARP的时候就不会丢。。而且我把报文发到本机(127.0.0.1)时就不会出现丢包了。但是又感觉不对。我不知道这个问题到底出在哪里了。


   
页: [1]
查看完整版本: sendto返回值成功,却发不出去包,而且每次都是前两个包。