繁体   English   中英

jpcap.packet.Packet无法转换为jpcap.packet.TCPPacket

[英]jpcap.packet.Packet cannot be cast to 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM