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为什么?请帮助解决.thanks
发布于 2012-07-26 20:43:14
你的代码没有任何意义。您不可能知道您收到的下两个数据包是一个TCP数据包,后跟一个UDP数据包。显然,您收到了一个不是TCP数据包的数据包,您只是基于希望而不是经验将其转换到TCPPacket。在你开始进行类型转换之前,你必须先看看这个包,看看它是什么。
发布于 2012-07-26 17:54:28
如果(我怀疑)您正在尝试处理一个包并将其转换为各种类型,那么您应该先阅读一遍,然后再转换它。
从文档中我了解到,连续的调用将读取连续的包:http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/javadoc/jpcap/JpcapCaptor.html#getPacket%28%29
https://stackoverflow.com/questions/11666634
复制相似问题