如何创建Web浏览器控件可以使用的本地服务器

时间:2009-12-22 05:41:23

标签: c# webserver tcp wininet

对于我最新的Windows应用程序,我想使用Web浏览器控件创建一个基于Web的界面,我想让Ajax在它上面工作。由于所有内容都将由Web浏览器控件本身加载,因此我想创建一个可在localhost端口上运行的Web服务器,并在访问特殊URL时将我的内容提供给Web浏览器,例如:

http://localhost:3454

如何创建Windows将请求路由到的Web服务器?我只需要知道正确的API / WinInet命令就可以开始接收请求。

2 个答案:

答案 0 :(得分:4)

幸运的是,.NET带有一个内置于框架中的相当不错的Web服务器。

查看HttpListener课程。

它支持同步和异步模式:

  

同步模型是合适的   如果您的应用程序应该阻止   等待客户请求,如果   您只想处理一个请求   一次。使用同步   模型,调用GetContext方法,   等待客户发送   请求。该方法返回一个   给你的HttpListenerContext对象   处理时发生。

     

在更复杂的异步中   模型,您的应用程序不会阻止   在等待请求和每个请求   请求是自己处理的   执行线程。使用   BeginGetContext方法指定一个   应用程序定义的方法   呼叫每个传入的请求。   在该方法中,调用   获取EndGetContext方法   请求,处理和回复。

这家伙很棒,因为它使用内置于现代Windows版本的本机Web服务器(XP SP2 +和Server 2003 +)。

答案 1 :(得分:1)

您所要做的就是打开TCP socketbind到端口3454和listen进行连接。然后,您需要通过读取流来解析每个传入连接,解析HTTP头和内容(如果适用)。