我想知道是否可以通过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()
我可以处理多个客户端并处理每个人的套接字。但是,如果我想将其转换为更具交互性的聊天类型套接字,我如何遍历当前连接的套接字并查看哪些套接字可以与之交谈?
答案 0 :(得分:1)
如果您想拥有套接字列表,最简单,最便携的方式是 make 一个。 :-)将您创建的套接字附加到列表中;这可以是模块级变量,也可以是类属性。
大多数操作系统都允许您获取打开的套接字列表。但是如何做到这一点在操作系统之间存在很大差异;
在FreeBSD上,您可以从sysctl
来电获取信息。在Linux上,您可以在/proc
文件系统中找到它。