tcpPacket.PayloadData или PayloadPacket должно быть тем, что вы хотите.PayloadData действителен, если Packet.Net не знает, как анализировать данные в подпакет, и PayloadPacket действителен, если это так.Я не уверен, что какой-либо анализ tcp-пакетов происходит сегодня, поэтому вы должны с уверенностью сказать, что tcpPacket.PayloadData.
Возможно, API следует изменить так, чтобы PayloadData всегда являлась необработанными данными в пакете tcp, а PayloadPacket был нулевым илине нуль в зависимости от того, было ли проанализировано содержимое пакета.Затем вы можете получить содержимое любого пакета, Ethernet, IP и т. Д. С помощью PayloadData.Мысли?
Вы могли бы ссылаться на какой-то вложенный пакет PayloadPacket, но трудно понять, как создается пакет.Это Ethernet-> IP-> Tcp или есть обертки вокруг пакета Ethernet?С TcpPacket.GetEncapsulated () эти ситуации обрабатываются для вас.
Крис
Автор SharpPcap / Packet.Net