关于UDP发送数据
    我和设备直接用网线相连。发数据到设备去。我发了二个UDP数据包(一个发的大小是99B,第二个是40B(大小是30-50B都可能))。但是利用网络监控软件,发现第一个没有监测到,然后在网络监控软件里发现变成了 ARP请求,然后设备回了一个ARP 响应,再接着就是我发的第二个40B的UDP包.然后再次发送(发 99B, 40B)正常,然后间隔几分钟后再次发送时,第一个数据包在网络监控软件上发现变成了ARP请求。请问这种问题(UDP数据包变成ARP请求了)怎么解决哦。

解决方案 »

  1.   

    自己检测,没有发送到就重发,udp本身就是不可靠的...........
      

  2.   

    发表于:2008-10-21 09:24:371楼 得分:0 
    自己检测,没有发送到就重发,udp本身就是不可靠的........... 
    ////////////////////
    在程序里,ntemp = sendto(...., nSendLen, ...)
    这里的nSendLen和ntemp 相等的。...可能只有发送  空(功能上)数据包了。
      

  3.   

    正常的,因为你机器ARP表里没有你设备的MAC-IP对应,所以系统会先发一个ARP询问设备的MAC地址,再发送UDP包
      

  4.   


    这是网络发送前必须要做的工作。ARP表要及时更新的。
      

  5.   

    关键是这样的。
    我在程序里检测了sendto了的,比如说我要发送3B的数据发现sendto返回值是3.但是我用软件抓包工具,并没有数据包出去啊。只是这个时候发现变成了ARP请求了。
    怎么更新的ARP表?
      

  6.   

    ARP表是系统自动更新的。一般不超过15分钟数据包没发出去,可能是IP不正确,由于系统已经发送ARP请求,但没有收到对方回应,所以你只能看到ARP 包
      

  7.   

    IP肯定是正确的哦
    即使是IP不正确,但是也应该出网口啊。用的UDP呢。
    因为只是第一次发出去的数据变成ARP了。以后能够发出去。