Example #1
0
        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);
            }
        }