C# HtttpServer

本文介绍了一个简单的HTTP服务器的实现过程,包括GET和POST请求的处理方式。通过C#语言演示了如何创建一个监听特定端口的服务器,并响应客户端的请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

publicclass MyHttpServer : HttpServer {
    publicMyHttpServer(intport)
        :base(port) {
    }
    publicoverride void 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>");
    }
 
    publicoverride void 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);
         
 
    }
}     





publicabstract class HttpServer {
 
      protectedint port;
      TcpListener listener;
      boolis_active = true;
      
      publicHttpServer(intport) {
          this.port = port;
      }
 
      publicvoid listen() {
          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);
          }
      }
 
      publicabstract void handleGETRequest(HttpProcessor p);
      publicabstract void handlePOSTRequest(HttpProcessor p, StreamReader inputData);
  }




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



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值