如果我有一个很大的HTTP数据包已被分解为多个TCP数据包,我怎样才能将它们重建为单个HTTP数据包?基本上,在数据包中,我希望告诉HTTP数据包何时开始/结束?我似乎看不到任何表示HTTP数据包开始或结束的TCP标头中的标志/字段。HTTP数据包重建
编辑:在跟进的回应。如果TCP管理流,它如何知道流何时开始和结束?这是由插座打开和关闭决定的吗?有些协议在某种程度上必须能够知道HTTP流/数据包何时开始和结束。这是我想知道的。
我现在的情况是我在C#中使用了一个包嗅探器,它读取TCP数据包,我希望能够重建HTTP请求/响应/等。像Wireshark和其他各种嗅探器所做的那样经历界面。或者,是否有任何C#库允许您在更高级别上使用HTTP流,从而使我不必自己重新构建HTTP流/数据包?
谢谢。
如果没有指定的Content-Length字段,还有其他的方式来锻炼身体的长度了。例如http://www.httpwatch.com/httpgallery/chunked/ – mike
可能有点迟,但是'Content-Length'头没有指定总包长度。它只是指定了内容的大小,即标题之后的主体。标题和正文由'\ r \ n \ r \ n'分隔。 –