时间:2016.10.28

在C#中使用HttpListener实现HttpServer的简单示例


[ Program.cs ]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threadingnamespace httpServer
{class Program{static void Main(string[] args){HttpListener httpListener;httpListener = new HttpListener();httpListener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;httpListener.Prefixes.Add("http://127.0.0.1:8086/");httpListener.Start();new Thread( new ThreadStart( delegate {try{loop(httpListener);}catch(Exception){httpListener.Stop();}})).Start();}private static void loop(HttpListener httpListener){while (true){HttpListenerContext context = httpListener.GetContext();HttpListenerRequest hRequest = context.Request;HttpListenerResponse hResponse = context.Response;if (hRequest.HttpMethod == "POST"){Console.WriteLine("POST:" + hRequest.Url);byte[] res = Encoding.UTF8.GetBytes("OK");hResponse.OutputStream.Write(res, 0, res.Length);}else if (hRequest.HttpMethod == "GET"){Console.WriteLine( "GET:"+hRequest.Url);byte[] res = Encoding.UTF8.GetBytes("OK");hResponse.OutputStream.Write(res, 0, res.Length);}}httpListener.Close();}}
}

运行结果:
1). 在浏览器中输入 127.0.0.1:8086

2). 在浏览器中输入(本机IP) 192.168.40.178:8086 没有显示内容

总结:
… 1. HttpListener的GetContext是阻塞型的

问题:
Q1: httpListener.Prefixes.Add的时候如果端口号设置成80,则下面运行到httpListener.Start的时候会报异常?

Q2: 为什么本机IP的时候不现实内容?

C# 创建HttpServer相关推荐

  1. python创建httpserver,并处理get、post请求

    参考: https://blog.csdn.net/gujing001/article/details/53152793/ 搭建一个简单的httpserver,用于测试数据通讯 from http.s ...

  2. httpserver

    httpserver 上一节我们说在tornado.web.Application.listen()(示例代码中的app.listen(8000))的方法中,创建了一个http服务器示例并绑定到给定端 ...

  3. tornado httpserver

    # coding:utf-8import tornado.web import tornado.ioloop import tornado.httpserver # 新引入httpserver模块cl ...

  4. Vert.x(vertx) 创建HTTP服务

    Vert.x底层通信框架依赖于Netty,并封装了对Http协议的支持,因此可以非常方便的进行Web开发,且不依赖于任何中间件.笔者所在的公司老系统使用的是SSM架构的项目,部署在Weblogic上, ...

  5. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  6. Microsoft .NET Compact Framework 开发常见问题解答

    这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...

  7. swift perfect mysql_服务端写Swift体验 (Perfect框架)

    Perfect 实践Demo 简介 Perfect是一组完整.强大的工具箱.软件框架体系和Web应用服务器,可以在Linux.iOS和macOS (OS X)上使用.该软件体系为Swift工程师量身定 ...

  8. 每天看一片代码系列(二):WebSocket-Node

    简介 我们都知道,websocket主要是通过在浏览器和服务端建立长连接,继而实现二者的相互数据通信.不同于HTTP的轮询,它不会有大量无效的HTTP消息交换,从而节省了花销.websocket其实就 ...

  9. t2 初识Tornado

    2.1 安装 自动安装 查看自己当前的环境是否已安装 $ pip list 安装 $ pip install tornado 手动安装 下载安装包tornado-4.3.tar.gz(https:// ...

  10. tornado 简易教程

    引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有 ...

最新文章

  1. python随机生成k个不重复的随机数_python 生成不重复的随机数的代码
  2. iOS之从OpenGL深入探究离屏渲染及性能优化
  3. 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder
  4. server sql 将出生日期转为年龄_在sql server表中有一个出生日期字段我怎么才能在当前年份改变时自动更新年龄字段...
  5. 聚类分析 - K-means - Python代码实现
  6. Docker教程(二) Docker环境安装
  7. 如何将一个字典转换为玲阶矩阵_每日一课 | Python循环字典
  8. 怎么把电子书格式转换成word文档
  9. 华为电脑Linux进pe,华为 PE-TLOOM 开启USB调试模式
  10. IE代理服务器没有响应 浏览器无法打开网页解决方法(浏览器无法打开网页但是可以使用其他软件)
  11. 实验题7.1 实现二分查找的算法
  12. 2021-11-08FGUI 使用
  13. OPC Server
  14. 阻塞(blockage)设置优化——Hard,Soft,Partial
  15. python计算三角形面积_【Scratch算法编程】计算三角形面积
  16. 计算机网络安全工作室介绍,计算机网络技术专业 “网络工作室”做法简介
  17. matlab没有关联m文件,matlab 不关联m文件的解决方法
  18. NIVC-IPR[IPADDR]
  19. mosquitto使用的基本流程以及一些遇见的问题
  20. php 对图片缩放,php 图片等比例缩放和截图

热门文章

  1. 网页鼠标动态线条html5,网站动态背景线条跟随鼠标移动,吸附鼠标效果代码
  2. Win10蓝牙耳机连接成功但耳机没声音解决方案
  3. 利用VLMCSD部署本地KMS服务器(Windows + CentOS7)
  4. SecureCRT免费安装教程
  5. 万能淘口令生成api,淘口令转化api,淘口令万能版api,淘口令生成器api
  6. ubuntu最好用的划词翻译词典:有道词典和GoldenDict
  7. 全栈式PHP集成环境-laragon(一)介绍、安装
  8. 桌面便签软件下载,电脑桌面便签软件下载哪一个
  9. Java 基础 —— Hello World
  10. java计算机毕业设计大学生旅游拼团网站源码+数据库+系统+lw文档+部署