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