本帖最后由 VisualEleven 于 2012-01-16 22:44:38 编辑

解决方案 »

  1.   

    PC中自己发,自己收,走的127环回地址,可能没到Winpcap过滤
      

  2.   

    用Winpcap发数据不是直接发到链路层么?而且程序中用Winpcap发数据使用的广播方式
      

  3.   

    “用环回地址的数据包”也指的是基于TCP/IP的协议栈吧?我现在直接用Winpcap发数据到链路层,不经过传输层和网络层,收数据也一样,直接读网卡数据,而且用Wireshark是可以看到数据包的,就是程序中收不到
      

  4.   

    哦,我错了,winpcap发送环回地址的数据包到达了数据链路层
      

  5.   

    网卡处于混杂模式则 流经网卡的数据包全被网卡接收 正常模式则只对 网卡本身mac或广播的数据包接受 winpacp有设置的函数的
      

  6.   

    程序中用的混杂模式
    现在是程序给调试软件发数据包(同一PC上或一个在PC一个在VM),调试软件都能接收到;但是当同在PC上时,调试软件给程序发数据包时程序收不到;而将调试软件放到VM中时,PC上的程序却能收到数据包,不知道问题出在哪?
      

  7.   

    PC中自己发,自己收,走的127环回地址,可能没到Winpcap过滤
      

  8.   

    在这种情况下,winpcap的过滤器应该没问题吧?因为用VM上的调试软件发数据时,PC上的程序是能收到的,但同在PC上时,程序却收不到数据。
      

  9.   

    接收程序 也用winpacp吗
    都用的话 
    试着卸载接收电脑的tcpip协议  在网卡设置那里winpacp 是不开端口的  (在tcpip协议开启时)windows收到数据后 会 直接返回个ICMP包 结束掉连接 所以winpacp不能完成tcpip的3次握手。还有效验值不正确的包 在vm下好像能接收 在实际网络中会被交换机或网卡直接丢弃 
     
    数据包拦截用 我用科来网络分析专家