Skip to content

Instantly share code, notes, and snippets.

@markrwilliams
Created December 4, 2017 19:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markrwilliams/e592203ae8315544504d0efc100dc1db to your computer and use it in GitHub Desktop.
Save markrwilliams/e592203ae8315544504d0efc100dc1db to your computer and use it in GitHub Desktop.
from twisted.internet import endpoints, defer, protocol, task
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
@task.react
def main(reactor):
listening = endpoints.TCP4ServerEndpoint(
reactor, 9999).listen(protocol.Factory.forProtocol(Echo))
@listening.addCallback
def forever(_):
return defer.Deferred()
return listening
@markrwilliams
Copy link
Author

from twisted.internet import endpoints, defer, protocol, task


class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)


@task.react
def main(reactor):
    listening = endpoints.TCP4ServerEndpoint(
        reactor, 9999).listen(protocol.Factory.forProtocol(Echo))

    listen = [False]

    def cycleListening(port):
        if listen[0]:
            print("startListening")
            port.startListening()
            listen[0] = False
        else:
            print("stopListening")
            port.stopListening()
            listen[0] = True

    @listening.addCallback
    def forever(port):
        task.LoopingCall(cycleListening, port).start(30)
        return defer.Deferred()
    return listening

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment