1. 程式人生 > >C# HttpListener 開發伺服器示例

C# HttpListener 開發伺服器示例

      private  static  HttpListener listener;            public  static  void  demo()          {             
if  (listener ==  null )              {                  listener =  new  HttpListener();                 
var url =  "http://+:9876/" ;                  listener.Prefixes.Add(url);                  listener.Start();
                 listener.BeginGetContext(MainProcess,  null );              };          }             private  static  void  MainProcess(IAsyncResult ar)          {              var context = listener.EndGetContext(ar);              listener.BeginGetContext(MainProcess,  null );              var response = context.Response;              response.AddHeader( "Server" "My Server V0.0.1" );              var request = context.Request;              var path = request.Url.LocalPath;              if  (path.StartsWith( "/" ) || path.StartsWith( "\\" ))                  path = path.Substring(1);              var sb =  new  StringBuilder( "輸入請求:" );              sb.AppendLine(path);              var visit = path.Split( new  char [] {  '/' '\\'  }, 2);              if  (visit.Length > 0)              {                  var cmd = visit[0].ToLower();                  sb.AppendLine( string .Format( "執行命令:{0}" , cmd));                  sb.AppendLine( string .Format( "另外有{0}個引數" , visit.Length - 1 + request.QueryString.Count));              }              sb.AppendLine(DateTime.Now.ToString());              response.ContentType =  "text/plain;charset=UTF-8" ;              var result = Encoding.UTF8.GetBytes(sb.ToString());              using  (var stream = response.OutputStream)              {                  stream.Write(result, 0, result.Length);              }          }