我如何使用HTTPServer(或其他一些类)来设置一个侦听文件系统套接字而不是实际网络套接字的 HTTP 服务器?我所说的“文件系统套接字”是指该AF_UNIX类型的套接字。
HTTPServer继承自SocketServer.TCPServer,所以我认为公平地说它不适用于该用例,即使您尝试解决它,也可能会遇到问题,因为您有点“滥用”它。
然而,话虽如此,定义一个子类本身是可以HTTPServer非常简单地创建和绑定 Unix 套接字的,如下所示:
class UnixHTTPServer(HTTPServer):
address_family = socket.AF_UNIX
def server_bind(self):
SocketServer.TCPServer.server_bind(self)
self.server_name = "foo"
self.server_port = 0
Run Code Online (Sandbox Code Playgroud)
然后,只需将要通过参数绑定到的路径传递server_address给构造函数:
server = UnixHTTPServer("/tmp/http.socket", ...)
Run Code Online (Sandbox Code Playgroud)
不过,我不能保证它实际上会很好地工作。您可能必须实现自己的 HTTP 服务器。
| 归档时间: |
|
| 查看次数: |
4774 次 |
| 最近记录: |