python - transport is NoneType when using UNIXClientEndpoint of Twisted -
i'm trying implement simple client twisted using datagram , named pipe.
i define protocol follow:
class consoleprotocol(protocol.datagramprotocol): def __init__(self, machine, console_path): self.console_path = console_path self.transport = none def datagramreceived(self, datagram, addr): self.logger.debug("datagramreceived()") # blah, doing stuff ! def sendhalt(self): self.logger.debug("sending message fifo %s", self.console_path) self.transport.write("ahaha", self.console_path)
and connect unix client endpoint:
console_endpoint = endpoints.unixclientendpoint(reactor, console_path) console_protocol = consoleprotocol() endpoints.connectprotocol(self.console_endpoint, self.console_protocol)
but during execution of method sendhalt()
, transport argument nonetype
. correct way use unix client twisted ?
endpoints aren't datagram protocols. need use reactor.listenunixdatagram(console_path, console_protocol)
. sure not confuse unix sockets , named pipes: different, incompatible things. twisted doesn't include support communicating on named pipes.
Comments
Post a Comment