zoukankan      html  css  js  c++  java
  • 练习:基于HttpListener的Web服务器。

    using System;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading;
    
    namespace ConsoleApplication22
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] prefixed = new string[] { "http://localhost:45678/" };
                HttpListener listener = new HttpListener();
                foreach (string s in prefixed)
                {
                    listener.Prefixes.Add(s);
                }
                listener.Start();
                Console.WriteLine("Start listening.");
                while (true)
                {
                    HttpListenerContext context = listener.GetContext();
                    HttpListenerRequest request = context.Request;
                    Console.WriteLine("{0} {1} HTTP/1.1", request.HttpMethod, request.RawUrl);
                    Console.WriteLine("Accept: {0}", string.Join(",",request.AcceptTypes));
                    Console.WriteLine("Accept-Language: {0}", string.Join(",", request.UserLanguages));
                    Console.WriteLine("User-Agent: {0}", request.UserAgent);
                    Console.WriteLine("Accept-Encoding: {0}", request.Headers["Accept-Encoding"]);
                    Console.WriteLine("Connection: {0}", request.KeepAlive ? "Keep-Alive" : "close");
                    Console.WriteLine("Host: {0}", request.UserHostName);
                    Console.WriteLine("Pragma: {0}", request.Headers["Pragma"]);
                    HttpListenerResponse response = context.Response;
                    string responseString = string.Format("<html><head><title>From HttpListener Server</title></head><body><h1>Hello, world.</h1><p>{0}</p></body></html>",DateTime.Now.ToString());
                    response.ContentLength64 = Encoding.UTF8.GetByteCount(responseString);
                    response.ContentType =  "Content-Type: text/html;charset=UTF-8";
                    Stream output = response.OutputStream;
                    StreamWriter writer = new StreamWriter(output);
                    writer.Write(responseString);
                    writer.Close();
    
                    if(Console.KeyAvailable)
                        break;
                }
                listener.Stop();
            }
        }
    }
  • 相关阅读:
    iOS APP上线流程
    iOS开发:cocoapods的使用
    Swift:函数和闭包
    OC中单例的各种写法及基本讲解
    iOS:死锁
    iOS传值方式:属性,代理,block,单例,通知
    iOS支付
    Binary Tree Preorder Traversal——经典算法的迭代求解(前序,中序,后序都在这里了)
    Largest Number——STL的深层理解
    const、volatile、mutable的用法
  • 原文地址:https://www.cnblogs.com/JingG/p/3096776.html
Copyright © 2011-2022 走看看