使用 D,我将如何监听传入的 HTTP 请求并响应它们?
使用 D,我将如何监听传入的 HTTP 流量并对其做出响应?
例如(在伪代码中):
socket = new socket("locahost", 80)
socket.onRequestRecevied(handleRequest);
function response handleRequest(request) {
//do something with the request and respond
request.respond("hello world")
}
我知道还有更多的内容,但我还没有找到很多关于响应传入 http 请求的资源。
编辑: 我当前的尝试仅产生了诸如“无法创建套接字:不允许操作”之类的异常。这可能意味着我做得正确,但只是收到系统错误消息。
Using D, how would I listen to incoming HTTP traffic and respond to it?
For example (in pseudocode):
socket = new socket("locahost", 80)
socket.onRequestRecevied(handleRequest);
function response handleRequest(request) {
//do something with the request and respond
request.respond("hello world")
}
I know there is a lot more to it than that, but I haven't been able to find many resources on responding to incoming http request.
EDIT:
My current attempts have yielded only exceptions like "Unable to create socket: Operation not permitted." which may mean I'm doing it correctly but am simply receiving a system error message.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它与监听正常传入的 TCP 连接并响应它们相同:
使用
handleHttp(Socket)
包含用于接收 http 请求并发送 http 标准定义的响应的逻辑(您将拥有找到你自己)it's the same as listening to normal incoming TCP connections and responding to them:
with
handleHttp(Socket)
containing the logic for receiving the http request and sending the response as defined be the http standard (you'll have to find that your self though)目前标准库中还没有 HTTP 服务器。 Adam Ruppe Github 上有一些非常好的代码用于 Web 工作,但它目前不包括独立的 Web 服务器。
下面的程序是一个简单的单线程基本 HTTP 服务器,用于教育
目的。生成有效的 HTTP 响应仍然取决于您;但至少它
解析标头,并让您有机会根据详细信息进行响应
的请求。
There is currently no HTTP server in the standard library. Adam Ruppe has some very good code on Github for Web work, but it currently doesn't include a standalone Web server.
The program below is a bare-bones, single-threaded basic HTTP server, for educational
purposes. Generating a valid HTTP response is still up to you; but at least it
parses the header, and gives you a chance to respond based on the details of
the request.
有一个名为 G-Wan 的多线程(基于事件)Web 服务器,它支持本机 > D 脚本。
我从未将它与“D”脚本一起使用,只与它按预期工作的 C++ 脚本一起使用。
There's a multi-threaded (event-based) Web server called G-Wan which supports native D scripts.
I never used it with 'D' scripts, only with C++ scripts for which it worked as expected.