自己写个IIS玩-协议解析篇
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-20
} else _waitParseBody = true; } private void SetNodes(byte[] tempBuffer) { BytesNode tempNode = new BytesNode(tempBuffer); if (_headerNode == null) _tailNode = _headerNode = tempNode; else if (_headerNode.Next == null) { _headerNode.Next = tempNode; _tailNode = tempNode; } else if (_tailNode != null) { _tailNode.Next = tempNode; _tailNode = tempNode; } } BytesLine _line = new BytesLine(Encoding.ASCII); List<BytesLine> _lines = new List<BytesLine>(); internal NodeIndex ContainsHeaderEndToken(BytesNode node) { if (_waitParseBody) return null; _lines.Clear(); bool secondBackslashN = false; bool firstBackslashR = false; byte expectNextChar = 0x0d; BytesNode previousNode = null; int k = -1; while (node != null) { int end = node.End; byte[] nodeBytes = node.Value; for (int i = node.Start; i < end; i++) { k++; byte tempByte = nodeBytes[i]; _line.Bytes[k] = tempByte; _line.Size = k; if(tempByte == 0x3a) _line.Pos1 = k; if ((secondBackslashN || firstBackslashR) && tempByte != expectNextChar) { if (firstBackslashR && secondBackslashN) { _lines.Add(_line); _line = new BytesLine(); _line.Bytes[0] = tempByte; k = 0; } firstBackslashR = false; secondBackslashN = false; } if (tempByte != expectNextChar) { |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于自己写个IIS玩-协议解析篇的所有评论