有没有办法在Python3中列出所有与socketserver的连接?

时间:2015-08-17 07:41:29

标签: sockets python-3.x socketserver

我想知道是否可以通过socketserver列出或迭代当前打开的套接字。以下是它的基本结构:

class SSL_TCPServer(TCPServer)
    def __init__(self, private, public, server_address, RequestHandlerClass, certfile, keyfile, ssl_version=ssl.PROTOCOL_TLSv1, bind_and_activate=True):
        TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate)
        foo()

class TestSSL(ThreadingMixIn, SSL_TCPServer):
    pass

class TestHandler(StreamRequestHandler):
    def handle(self):
        bar()

TestSSL(private, public, (HOST, PORT),TestHandler,"./crt.pem", "./key.pem").serve_forever()

我可以处理多个客户端并处理每个人的套接字。但是,如果我想将其转换为更具交互性的聊天类型套接字,我如何遍历当前连接的套接字并查看哪些套接字可以与之交谈?

1 个答案:

答案 0 :(得分:1)

如果您想拥有套接字列表,最简单,最便携的方式是 make 一个。 :-)将您创建的套接字附加到列表中;这可以是模块级变量,也可以是类属性。

大多数操作系统都允许您获取打开的套接字列表。但是如何做到这一点在操作系统之间存在很大差异;

在FreeBSD上,您可以从sysctl来电获取信息。在Linux上,您可以在/proc文件系统中找到它。