Warp:绑定到Unix域套接字

乌利·科勒(Uli Koehler)

此处列出的示例代码显示了如何使warp仅在特定主机上侦听。

此外,本文还介绍了有关如何在Haskell中使用Unix域套接字的一些基础知识。

如何结合这两种方法,以使warp侦听(即绑定到)特定的unix域套接字(例如warp.sock)?

注意:由于回答了“问答式”,因此该问题有意表明没有进行任何研究。

乌利·科勒(Uli Koehler)

您可以使用runSettingsSocket一个AF_UNIX插座:

{-# LANGUAGE OverloadedStrings #-}

import Network.Wai (responseLBS)
import Network.Wai.Handler.Warp
import Network.Socket
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)

main = do
    let port = 3000
    -- Open the socket
    sock <- socket AF_UNIX Stream 0
    bind sock $ SockAddrUnix "warp.sock"
    listen sock maxListenQueue
    -- Run the server
    let settings = defaultSettings { settingsPort = port }
    runSettingsSocket settings sock app
    -- Cleanup: Close socket
    close sock

app req f = f $
    responseLBS status200 [(hContentType, "text/plain")] "Hello world!"

请注意,这显然仅适用于unixoid平台。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Unix域套接字绑定,重用地址

来自分类Dev

如何将Python套接字绑定到特定域?

来自分类Dev

UNIX域套接字编程3个套接字

来自分类Dev

Node Express Unix域套接字权限

来自分类Dev

Unix域套接字的边缘触发epoll

来自分类Dev

lua-socket:Unix域套接字?

来自分类Dev

如何“跟踪” Unix域套接字?

来自分类Dev

使用Unix域套接字控制VLC

来自分类Dev

IPC Unix域套接字bash

来自分类Dev

UNIX域套接字是否溢出?

来自分类Dev

带有VM的Unix域套接字

来自分类Dev

lua-socket:Unix域套接字?

来自分类Dev

对不同主机使用Unix域套接字

来自分类Dev

Unix域套接字的边缘触发epoll

来自分类Dev

使用Unix域套接字显示网页

来自分类Dev

如何创建Unix域套接字?

来自分类Dev

非root用户的Unix域套接字

来自分类Dev

套接字动态绑定到缩小的范围

来自分类Dev

将功能绑定到多个套接字

来自分类Dev

从iOS扩展中绑定Unix域套接字失败,并出现errno 48(地址已在使用中)

来自分类Dev

转到net / http unix域套接字连接

来自分类Dev

OpenOffice管道(unix域套接字)不是/ tmp吗?

来自分类Dev

带有unix域套接字的IPC安全吗?

来自分类Dev

如何从命令行访问Unix域套接字?

来自分类Dev

简单的Unix域套接字服务器

来自分类Dev

使用JNI通过UNIX域套接字发送Java FD

来自分类Dev

Netty连接到Unix域套接字失败

来自分类Dev

Unix域套接字如何在Erlang 19中工作

来自分类Dev

通过Unix域套接字IPC机制的对等凭据