当前位置:编程学习 > asp >>

最简单的web服务器实例

1.新建一个控制台工程,代码如下

static void Main(string[] args) 

    // 定义IP地址  
    IPAddress address = IPAddress.Loopback; 
    IPEndPoint endPoint = new IPEndPoint(address, 50000); 
    // 创建socket对象  
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
    // bind  
    socket.Bind(endPoint); 
    // listen  
    socket.Listen(10); 
    Console.WriteLine("开始监听,端口号:{0}", endPoint.Port); 
    while (true) 
    { 
        // accept  
        Socket clientSocket = socket.Accept(); 
        Console.WriteLine("建立了一个连接,对方端点{0}", clientSocket.RemoteEndPoint); 
 
        // 开始接受对方的信息,并显示  
        byte[] buffer = new byte[4096]; 
        int length = clientSocket.Receive(buffer, 4096, SocketFlags.None); 
        System.Text.Encoding utf8 = System.Text.Encoding.UTF8; 
        string requestString = utf8.GetString(buffer, 0, length); 
        Console.WriteLine(requestString); 
         
        // 发送响应信息  
        string statusLine = "HTTP/1.1 200 OK\r\n"; 
        byte[] statusLineBytes = utf8.GetBytes(statusLine); // 状态行  
        string responseBody = "<html><head><title>response server</title></head><body>hello world!</body></html>"; 
        byte[] responseBodyBytes = utf8.GetBytes(responseBody);//   内容部分  
        string responseHeader = String.Format("Content-Type: text/html;charset=UTF-8\r\nContent-Length:{0}\r\n", 
                                                                                responseBody.Length); 
        byte[] responseHeaderBytes = utf8.GetBytes(responseHeader);//  回应头  
        //  发送消息  
        clientSocket.Send(statusLineBytes); 
        clientSocket.Send(responseHeaderBytes); 
        clientSocket.Send(new byte[] { 13, 10 }); 
        clientSocket.Send(responseBodyBytes); 
        // 断开与客户端的连接  
        clientSocket.Close(); 
        if (Console.KeyAvailable) 
        { 
            break; 
        }           
    } 
    socket.Close(); 

        static void Main(string[] args)
        {
            // 定义IP地址 www.zzzyk.com
            IPAddress address = IPAddress.Loopback;
            IPEndPoint endPoint = new IPEndPoint(address, 50000);
            // 创建socket对象
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            // bind
            socket.Bind(endPoint);
            // listen
            socket.Listen(10);
            Console.WriteLine("开始监听,端口号:{0}", endPoint.Port);
            while (true)
            {
                // accept
                Socket clientSocket = socket.Accept();
                Console.WriteLine("建立了一个连接,对方端点{0}", clientSocket.RemoteEndPoint);

                // 开始接受对方的信息,并显示
                byte[] buffer = new byte[4096];
                int length = clientSocket.Receive(buffer, 4096, SocketFlags.None);
                System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
                string requestString = utf8.GetString(buffer, 0, length);
                Console.WriteLine(requestString);
               
                // 发送响应信息
                string statusLine = "HTTP/1.1 200 OK\r\n";
                byte[] statusLineBytes = utf8.GetBytes(statusLine); // 状态行
                string responseBody = "<html><head><title>response server</title></head><body>hello world!</body></html>";
             &nb

补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,