static void ReadCallback(IAsyncResult ar) { HUBHelper rHelper = (HUBHelper)ar.AsyncState; int byteCount = -1; try { byteCount = rHelper.stream.EndRead(ar); byte[] tempBuff = new byte[8192]; if (byteCount == 1) { byteCount += rHelper.stream.Read(rHelper.buffer, 1, rHelper.buffer.Length - 1); } HUBHelper helper = new HUBHelper(); helper.stream = rHelper.stream; rHelper.stream.BeginRead(helper.buffer, 0, 8192, new AsyncCallback(ReadCallback), helper); if (byteCount > 0) { HTTP.Request inReq = HTTP.ParseRequest(rHelper.buffer, byteCount); Log.Write(LogLevel.Debug, "New '{0}' request at '{1}'", inReq.Method, inReq.Uri); HTTP.Response outResp = GetResponse(inReq); rHelper.stream.Write(outResp.Construct()); } } catch (Exception e) { HandleDisconnect(rHelper); //Log.Write(LogLevel.Error, "{0}", e); } }