簡體   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