如何转换为字符串并从TCP数据包中读取数据

时间:2010-04-11 09:30:48

标签: sharppcap

我使用了sharppcap来捕获TCP数据包。现在我想从TCP数据包重建HTTP数据包,但我不知道如何。我在某处读到了我可以在TCP数据中找到HTTP数据包的开始...我试图使用以下代码将byte [] TCP数据转换为字符串: string s = System.Text.Encoding.UTF8.GetString(tcp_pack.Data); 但字符串不可读。就像用记事本打开的二进制文件一样。 是因为数据是加密的还是代码不正确? 如何从TCP数据包中重建HTTP数据包?

2 个答案:

答案 0 :(得分:0)

尝试“Encoding.BigEndianUnicode.GetString(tcp_pack.Data)”

答案 1 :(得分:0)

没有简单的方法,因为你需要在内存中重建TCP会话。

基本上,如果发送的消息大于一个数据包,则会将其分解为多个数据包。因此,您需要捕获这些数据包,按正确的顺序排列它们,然后手动重新组装数据。

如果消息简短/不易分解成多个部分,那么您需要找出有效负载所处的格式。首先尝试使用ASCII解码。