C# HtttpServer

来源:互联网 发布:做股票网络销售合法吗 编辑:程序博客网 时间:2024/05/07 20:50
publicclassMyHttpServer : HttpServer {
    publicMyHttpServer(intport)
        :base(port) {
    }
    publicoverridevoid handleGETRequest(HttpProcessor p) {
        Console.WriteLine("request: {0}", p.http_url);
        p.writeSuccess();
        p.outputStream.WriteLine("<html><body><h1>test server</h1>");
        p.outputStream.WriteLine("Current Time: " + DateTime.Now.ToString());
        p.outputStream.WriteLine("url : {0}", p.http_url);
 
        p.outputStream.WriteLine("<form method=post action=/form>");
        p.outputStream.WriteLine("<input type=text name=foo value=foovalue>");
        p.outputStream.WriteLine("<input type=submit name=bar value=barvalue>");
        p.outputStream.WriteLine("</form>");
    }
 
    publicoverridevoid handlePOSTRequest(HttpProcessor p, StreamReader inputData) {
        Console.WriteLine("POST request: {0}", p.http_url);
        stringdata = inputData.ReadToEnd();
 
        p.outputStream.WriteLine("<html><body><h1>test server</h1>");
        p.outputStream.WriteLine("<a href=/test>return</a><p>");
        p.outputStream.WriteLine("postbody: <pre>{0}</pre>", data);
         
 
    }
}     





publicabstractclass HttpServer {
 
      protectedintport;
      TcpListener listener;
      boolis_active = true;
      
      publicHttpServer(intport) {
          this.port = port;
      }
 
      publicvoidlisten() {
          listener = newTcpListener(port);
          listener.Start();
          while(is_active) {               
              TcpClient s = listener.AcceptTcpClient();
              HttpProcessor processor = newHttpProcessor(s,this);
              Thread thread = newThread(newThreadStart(processor.process));
              thread.Start();
              Thread.Sleep(1);
          }
      }
 
      publicabstractvoid handleGETRequest(HttpProcessor p);
      publicabstractvoid handlePOSTRequest(HttpProcessor p, StreamReader inputData);
  }




HttpServer httpServer = newMyHttpServer(8080);
Thread thread = newThread(newThreadStart(httpServer.listen));
thread.Start();



 
0 0