Beispiel #1
0
        private void ClientReceived(object o)
        {
            var client = (TcpClient)o;

            if (client.Connected)
            {
                MyWebRequest msg = null;
                try
                {
                    msg = MyWebRequest.Create(client);
                    if (msg.Url != null)
                    {
                        if (P2pProxyApp.Debug)
                        {
                            P2pProxyApp.Log.Write(string.Format("WebServer::ClientRequest({0}): {1}", msg.Client.Client.RemoteEndPoint, msg.Url), TypeMessage.Info);
                        }
                        if (_routers.ContainsKey(msg.Method + "_" + msg.Url))
                        {
                            _routers[msg.Method + "_" + msg.Url].Invoke(msg);
                        }
                        else
                        {
                            Send404(msg);
                        }
                    }
                }
                catch (SoapException ex)
                {
                    MyWebResponse response = msg.GetResponse();
                    try { response.SendSoapErrorHeadersBody(ex.Code, ex.Message); }
                    catch { }
                }
                catch (Exception ex)
                {
                    P2pProxyApp.Log.Write(string.Format("WebServer::ClientRequest({0}):{1}", msg != null ? msg.Url + "?" + msg.QueryString : "", ex.Message), TypeMessage.Error);
                }
                finally
                { client.Close(); }
            }
        }