SOS:linux网络编程的怪问题
小弟近日在uCLinux中(运行在ARM7上)写了一个用UDP通讯的服务程序,可以传输数据,但是传了一段时间之后,网络突然ping不通,将eth0 down 了之后在 up,又恢复正常。(持续传输的时间长度不定,有时可传几十MB,有时只可传十几KB)( [8 Q' V3 e) _# S5 g4 a
8 b& a* g( f; D$ M" I3 w
ping不通时,抓包可看到uCLinux有ARP地址解释请求发出,并且对应的主机已经回答了这个请求,但是uCLinux还是一直在发ARP地址解释请求的报文,即uCLinux并没有正确得到对应主机的MAC地址。
, h# ^* ~( f$ d! s3 S3 r$ h3 _' Q9 W
若手动给uCLinux加上对应主机的MAC地址再ping,则主机能收到uCLinux的ICMP request报文,而且回复了ICMP reply报文,但是uCLinux显示的状态还是ping不通。$ I9 Z5 h( j% K3 v% Y' R
8 P0 J7 V7 E8 w7 }小弟调了两天了,没有什么头绪,希望各位大虾指点一把,小弟拜谢了先!
2 F @* }9 J! x9 G# Y
$ Y8 }; c# Y9 W( W6 H; i此外,若在服务程序中加入一些打印语句进行调试,对持续传输的时间长度也有影响,输出太频繁,持续的时间会越短。