jpcap.packet.Packet 不能强制转换为 jpcap.packet.TCPPacket


        Packet packet = new Packet();
        while(packet != null )
        {
           packet = jpcap.getPacket();
           TCPPacket tcp = (TCPPacket)jpcap.getPacket();
           IPPacket ipp = (IPPacket)packet;
           UDPPacket udp = (UDPPacket)jpcap.getPacket();
           ipp = (IPPacket)tcp;
         }  

TCPPacket tcp = (TCPPacket(jpcap.getPacket((;此行出现错误 jpcap.packet.Packet 无法强制转换为 jpcap.packet.TCPPacket为什么?请帮助解决它,谢谢

你的代码没有任何意义。您不可能知道您收到的接下来两个数据包将是一个 TCP 数据包,后跟一个 UDP 数据包。显然,您收到了一个不是TCP数据包的数据包,您只是基于希望而不是经验将其投射到TCPPacket。在开始类型转换之前,您必须查看数据包以了解它是什么。

如果(正如我怀疑的那样(您正在尝试处理一个数据包并将其转换为各种类型,您应该读取一次,然后投递它。

从文档中我了解到连续调用将读取连续包:http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/javadoc/jpcap/JpcapCaptor.html#getPacket%28%29

相关内容

  • 没有找到相关文章

最新更新