Пример #1
0
        public Response GetResponse(Request request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }
            if (!this.Connected)
            {
                throw new InvalidOperationException("Not connected.");
            }
            Transceiver transceiver = new Transceiver(this.client);

            transceiver.SendProgressChanged    += new ProgressHandler(this.OnRequestProgressChanged);
            transceiver.ReceiveProgressChanged += new ProgressHandler(this.OnResponseProgressChanged);
            transceiver.SendRequest(request);
            Response response = transceiver.ReceiveResponse();

            transceiver.SendProgressChanged    -= new ProgressHandler(this.OnRequestProgressChanged);
            transceiver.ReceiveProgressChanged -= new ProgressHandler(this.OnResponseProgressChanged);
            return(response);
        }
Пример #2
0
        private void Processing(object parameter)
        {
            ClientState state = (ClientState)parameter;

            try
            {
                bool        flag;
                Transceiver transceiver = new Transceiver(state.Client);
                do
                {
                    Request  request  = transceiver.ReceiveRequest();
                    Response response = this.ProcessRequest(state.Id, (IPEndPoint)state.Client.RemoteEndPoint, request, out flag);
                    transceiver.SendResponse(response);
                }while (!flag);
            }
            catch (ThreadAbortException)
            {
                return;
            }
            catch (Exception)
            {
            }
            this.CloseClient(state.Client);
        }