[英]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.