private void OnDataReceived(object sender, SocketReceivedDataEventArgs args)
        {
            var data = args.Data;

            // weird expression format in order to get the sign extension correct
            ulong timestamp = ((ulong)data[40] << 24 | (ulong)data[41] << 16 | (ulong)data[42] << 8 | (ulong)data[43]);

            DateTime result = new DateTime(1900, 1, 1, 0, 0, 0);

            result             = result.AddTicks((long)timestamp * TimeSpan.TicksPerSecond);
            _lastTimeRetrieved = result;
            _responseReceived.Set();
        }
示例#2
0
        internal bool OnResponseReceived(SocketReceivedDataEventArgs args)
        {
            // We got an unparsable reply, so ignore subsequent data packets
            if (_failed)
            {
                return(true);
            }

            if (_response == null)
            {
                _response = new HttpResponse();
            }

            bool isComplete = false;

            try
            {
                isComplete = _response.ProcessResponse(args.Data);
            }
            catch (Exception)
            {
                _response  = null;
                _failed    = true;
                isComplete = true;
            }

            if (isComplete)
            {
                if (this.ResponseReceived != null)
                {
                    this.ResponseReceived(this, _response);
                }
                this.Reset();
            }

            return(isComplete);
        }
示例#3
0
        private void SocketOnDataReceived(object sender, SocketReceivedDataEventArgs args)
        {
            if (_activeRequest == null)
            {
                return;
            }

            ISocket socket = (ISocket)sender;

            if (_activeRequest.OnResponseReceived(args))
            {
                _lastResponse  = _activeRequest.Response;
                _activeRequest = null;
                // If this was an async send, we saved a ref to the socket.  Clean that up now.
                if (_socket != null && _socket == socket)
                {
                    _socket.SocketClosed -= SocketOnSocketClosed;
                    _socket.DataReceived -= SocketOnDataReceived;
                    _socket.Dispose();
                    _socket = null;
                }
                _requestCompletedEvent.Set();
            }
        }
示例#4
0
 private static void socket_DataReceived(object sender, SocketReceivedDataEventArgs args)
 {
     var socket = (WifiSocket)sender;
     if (args.Data != null)
     {
         Debug.Print("Data Received : " + args.Data.Length);
         if (args.Data.Length > 0)
         {
             var body = StringUtilities.ConvertToString(args.Data);
             //TODO: Parse the request - here we're just going to reply with a 404
             socket.Send("HTTP/1.1 404 NOT FOUND\r\nConnection: close\r\nContent-Length: 0\r\n\r\n");
         }
     }
 }
示例#5
0
        private void SocketOnDataReceived(object sender, SocketReceivedDataEventArgs args)
        {
            if (_activeRequest == null)
                return;

            ISocket socket = (ISocket)sender;

            if (_activeRequest.OnResponseReceived(args))
            {
                _lastResponse = _activeRequest.Response;
                _activeRequest = null;
                // If this was an async send, we saved a ref to the socket.  Clean that up now.
                if (_socket!=null && _socket == socket)
                {
                    _socket.SocketClosed -= SocketOnSocketClosed;
                    _socket.DataReceived -= SocketOnDataReceived;
                    _socket.Dispose();
                    _socket = null;
                }
                _requestCompletedEvent.Set();
            }
        }
示例#6
0
        private void OnDataReceived(object sender, SocketReceivedDataEventArgs args)
        {
            var data = args.Data;

            // weird expression format in order to get the sign extension correct
            ulong timestamp = ((ulong)data[40] << 24 | (ulong)data[41] << 16 | (ulong)data[42] << 8 | (ulong)data[43]);

            DateTime result = new DateTime(1900, 1, 1, 0, 0, 0);
            result = result.AddTicks((long)timestamp * TimeSpan.TicksPerSecond);
            _lastTimeRetrieved = result;
            _responseReceived.Set();
        }
示例#7
0
        internal bool OnResponseReceived(SocketReceivedDataEventArgs args)
        {
            // We got an unparsable reply, so ignore subsequent data packets
            if (_failed)
                return true;

            if (_response==null)
                _response = new HttpResponse();

            bool isComplete = false;
            try
            {
                isComplete = _response.ProcessResponse(args.Data);
            }
            catch (Exception)
            {
                _response = null;
                _failed = true;
                isComplete = true;
            }

            if (isComplete)
            {
                if (this.ResponseReceived != null)
                    this.ResponseReceived(this, _response);
                this.Reset();
            }

            return isComplete;
        }