Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使asp.net mvc Web服务器使用套接字_C#_Asp.net Mvc_Sockets - Fatal编程技术网

C# 如何使asp.net mvc Web服务器使用套接字

C# 如何使asp.net mvc Web服务器使用套接字,c#,asp.net-mvc,sockets,C#,Asp.net Mvc,Sockets,我有一个asp.NETMVC项目,但我不想在IIS上运行它,所以我开始自己制作一个Web服务器 我已经完成了“接收”部分,“处理请求”将继续 如果请求是引用一个文件(HTML、jpg、rar…等等),只需读取文件内容,然后返回。如果没有,则运行asp.net MVC项目以获得响应。所以我的问题是:如何运行asp.NETMVC项目 public static void Startup() { var ip = IPAddress.Any;

我有一个asp.NETMVC项目,但我不想在IIS上运行它,所以我开始自己制作一个Web服务器

我已经完成了“接收”部分,“处理请求”将继续

如果请求是引用一个文件(HTML、jpg、rar…等等),只需读取文件内容,然后返回。如果没有,则运行asp.net MVC项目以获得响应。所以我的问题是:如何运行asp.NETMVC项目

        public static void Startup()
        {
            var ip = IPAddress.Any;
            var point = new IPEndPoint(ip, 2333);

            var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            server.Bind(point);
            server.Listen(10);

            server.BeginAccept(new AsyncCallback(AcceptClient), server);
        }

        public static void AcceptClient(IAsyncResult result)
        {
            var server = result.AsyncState as Socket;
            var client = default(Socket);

            try
            {
                client = server.EndAccept(result);
            }
            catch
            {
                return;
            }

            client.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMessage), client);

            server.BeginAccept(new AsyncCallback(AcceptClient), server);
        }

        private static byte[] buffer = new byte[1024];

        private static void ReceiveMessage(IAsyncResult result)
        {
            var client = result.AsyncState as Socket;
            var length = client.EndReceive(result);
            var message = Encoding.UTF8.GetString(buffer, 0, length);

            var response = ProcessRequest(message);
            if (!String.IsNullOrEmpty(response))
            {
                client.Send(Encoding.UTF8.GetBytes(response));
            }

            client.Close();
        }
首先花几个小时阅读所有(新)托管选项。首先花几个小时阅读所有(新)托管选项。