C# 如何使asp.net mvc Web服务器使用套接字
我有一个asp.NETMVC项目,但我不想在IIS上运行它,所以我开始自己制作一个Web服务器 我已经完成了“接收”部分,“处理请求”将继续 如果请求是引用一个文件(HTML、jpg、rar…等等),只需读取文件内容,然后返回。如果没有,则运行asp.net MVC项目以获得响应。所以我的问题是:如何运行asp.NETMVC项目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;
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();
}
首先花几个小时阅读所有(新)托管选项。首先花几个小时阅读所有(新)托管选项。