【问题标题】:twisted connectTCP with IPv6使用 IPv6 的扭曲连接 TCP
【发布时间】:2021-03-03 08:35:24
【问题描述】:

如何使用 twisted 和 listenTCP 访问 IPv6 地址?如果我从 ifconfig 中获取地址,例如aaa::bbbb:cccc:dddd:eeee 然后我收到以下错误消息:

raise CannotListenError(self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on aaa::bbbb:cccc:dddd:eeee

【问题讨论】:

  • 具有connect 的函数通常是指客户端功能。但是错误来自服务器。那么,您在连接到服务器或服务器在主机/端口上侦听时遇到问题吗?

标签: python twisted ipv6


【解决方案1】:

endpoints.serverFromString 指定 IPv6 接口值或显式调用 endpoints.TCP6ServerEndpoint

from twisted.internet import endpoints, protocol, reactor

class Echo(protocol.Protocol):

    def connectionMade(self):
        print(f"{type(self.transport)}")

    def dataReceived(self, data):
        self.transport.write(data)

# Use one of the following
# Server string, note the backslashes
tcp6 = endpoints.serverFromString(reactor, "tcp:8000:interface=\:\:1")
# Or explicit IPv6 endpoint
tcp6 = endpoints.TCP6ServerEndpoint(reactor, 8000, interface="::1")

factory = protocol.Factory.forProtocol(Echo)
tcp6.listen(factory)
reactor.run()

如果这不起作用,那么您可能需要确保在您的系统上启用了 IPv6。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多