1

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

http://localhost:3454

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

4

2 回答 2

4

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

查看HttpListener类。

它支持同步和异步模式:

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

在更复杂的异步模型中,您的应用程序在等待请求时不会阻塞,并且每个请求都在其自己的执行线程中处理。使用 BeginGetContext 方法来指定要为每个传入请求调用的应用程序定义的方法。在该方法中,调用 EndGetContext 方法来获取请求、处理它并做出响应。

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

于 2009-12-22T06:41:10.210 回答
1

您所要做的就是打开一个TCP 套接字绑定到端口 3454 并监听连接。然后,您需要通过读取流、解析 HTTP 标头和内容(如果适用)来为每个传入连接提供服务。

于 2009-12-22T05:57:56.717 回答