📄 packetframe.cs
字号:
using System;
using System.Windows.Forms;
using System.Collections;
namespace MyClasses
{
public class PacketFRAME
{
public struct PACKET_FRAME
{
public uint Seconds; // seconds
public uint MicroSeconds; // and microseconds
public uint CaptureLength; /* length of portion present */
public string CaptureTimeStr;
public uint PacketLength; /* length this packet (off wire) */
public uint Reserved;
public byte [] Data;
};
PacketParser.PACKET_ITEM PItem;
public PacketFRAME()
{
}
/*public TreeNode GetFRAMENode( PACKET_FRAME Frame )
{
TreeNode mNode;
string Tmp = "";
mNode = new TreeNode();
Tmp = "FRAME ( Captured : " + Frame.CaptureLength.ToString() +
" , Original : " + Frame.PacketLength.ToString() + " )";
mNode.Text = Tmp;
Tmp = " Seconds : " + Frame.Seconds.ToString();
mNode.Nodes.Add( Tmp );
Tmp = " Microseconds : " + Frame.MicroSeconds.ToString();
mNode.Nodes.Add( Tmp );
Tmp = " Captured Length : " + Frame.CaptureLength.ToString();
mNode.Nodes.Add( Tmp );
Tmp = " Packet Length : " + Frame.PacketLength.ToString();
mNode.Nodes.Add( Tmp );
return mNode;
}
public PACKET_FRAME GetFRAMEPart( byte [] PacketData , ref int Index , bool PacketOnOff )
{
int i = 0;
PacketFrame.Seconds = Function.Get4Bytes( PacketData , ref Index , VALUE );
PacketFrame.MicroSeconds = Function.Get4Bytes( PacketData , ref Index , VALUE );
PacketFrame.CaptureLength = Function.Get4Bytes( PacketData , ref Index , VALUE );
PacketFrame.PacketLength = Function.Get4Bytes( PacketData , ref Index , VALUE );
PacketFrame.Reserved = 0;
if( PacketOnOff )
PacketFrame.Reserved = Function.Get4Bytes( PacketData , ref Index , VALUE );
PacketFrame.CaptureTimeStr = "";
PacketFrame.Data = new byte[ PacketFrame.CaptureLength ];
for( i = 0; i < PacketFrame.CaptureLength; i ++ )
PacketFrame.Data[i] = PacketData[ Index++ ];
return PacketFrame;
}*/
/*public bool FRAMEParser( ref TreeNodeCollection mNode,
byte [] PacketData ,
ref int Index ,
ref ListView LVw ,
int ItemIndex ,
ref RichTextBox Rtx ,
ref ArrayList CapturedPackets ,
bool PacketOnOff ,
ref PacketParser.PACKET_STATISTIC Pst ,
ref bool StatisticUpdated ,
ref Packet32.CAPTURE_OPTIONS mCaptureOptions )*/
public bool FRAMEParser(
ref ListView LVw ,
ref TreeNodeCollection mNode,
ref RichTextBox Rtx ,
byte [] PacketData ,
ref int Index ,
int ItemIndex ,
ref ArrayList CapturedPackets ,
bool PacketOnOff ,
ref PacketParser.PACKET_STATISTIC Pst ,
ref bool StatisticUpdated ,
ref Packet32.CAPTURE_OPTIONS mCaptureOptions )
{
TreeNode mNodex;
string Tmp = "";
int i = 0;
mNode.Clear();
mNodex = new TreeNode();
try
{
PItem.Seconds = Function.Get4Bytes( PacketData , ref Index , VALUE );
Tmp = " Seconds : " + PItem.Seconds.ToString();
mNodex.Nodes.Add( Tmp );
PItem.MicroSeconds = Function.Get4Bytes( PacketData , ref Index , VALUE );
Tmp = " Microseconds : " + PItem.MicroSeconds.ToString();
mNodex.Nodes.Add( Tmp );
PItem.CaptureLength = Function.Get4Bytes( PacketData , ref Index , VALUE );
Tmp = " Captured Length : " + PItem.CaptureLength.ToString();
mNodex.Nodes.Add( Tmp );
PItem.PacketLength = Function.Get4Bytes( PacketData , ref Index , VALUE );
Tmp = " Packet Length : " + PItem.PacketLength.ToString();
mNodex.Nodes.Add( Tmp );
PItem.Reserved = 0;
if( PacketOnOff )
PItem.Reserved = Function.Get4Bytes( PacketData , ref Index , VALUE );
Tmp = "FRAME ( Captured : " + PItem.CaptureLength.ToString() +
" , Original : " + PItem.PacketLength.ToString() + " )";
mNodex.Text = Tmp;
mNodex.Tag = "0," + PItem.CaptureLength.ToString();
PItem.CaptureTimeStr = "";
PItem.Data = new byte[ PItem.CaptureLength ];
for( i = 0; i < PItem.CaptureLength; i ++ )
PItem.Data[i] = PacketData[ Index++ ];
Rtx.Text = "";
Rtx.AppendText( Function.GetHexString( PItem.Data ) );
LVw.Items[ ItemIndex ].SubItems[ Const.LIST_VIEW_INFO_INDEX ].Text = "Fram Data";
mNode.Add( mNodex );
//CapturedPackets.Add( PacketFrame );
}
catch( Exception Ex )
{
mNode.Add( mNodex );
Tmp = "[ Malformed FRAME packet. Remaining bytes don't fit an FRAME packet. Possibly due to bad decoding ]";
mNode.Add( Tmp );
Tmp = "[ Exception raised is <" + Ex.GetType().ToString() + "> at packet index <" + Index.ToString() + "> ]";
mNode.Add( Tmp );
LVw.Items[ ItemIndex ].SubItems[ Const.LIST_VIEW_INFO_INDEX ].Text = "[ Malformed FRAME packet. Remaining bytes don't fit an FRAME packet. Possibly due to bad decoding ]";
return false;
}
return true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -