Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. from twisted.spread import pb
  4. from twisted.internet import reactor, threads
  5. from time import sleep
  6. from twisted.python import util
  7. from twisted.internet.defer import Deferred
  8.  
  9. class TestServer(pb.Root):
  10.     def __init__(self):
  11.         reactor.callLater(1, self.useRef)
  12.         reactor.callLater(3, self.useRef)
  13.     def remote_setRef(self, ref):
  14.         self.ref = ref
  15.         return "True"
  16.     def useRef(self):
  17.         print "SERVER: calling client method test"
  18.         print self.ref
  19.         d = Deferred()
  20.         d.callback('test')
  21.         d.addCallback(self.ref.callRemote)
  22.         d.addErrback(self.useRefEB)
  23.     def useRefCB(self, result):
  24.         print "SERVER: used client method test"
  25.     def useRefEB(self, failure):
  26.         print "SERVER: error in useRef try again later"
  27.         return True
  28.  
  29.  
  30. class TestClient(pb.Root):
  31.     def sendRef(self, root):
  32.         return root.callRemote("setRef", self)
  33.     def remote_test(self):
  34.         print "CLIENT: server called test method"
  35.  
  36.  
  37. factory = pb.PBClientFactory()
  38. d = factory.getRootObject()
  39. d.addCallback(lambda root: TestClient().sendRef(root))
  40. d.addCallback(lambda echo: 'CLIENT: server got my client ref')
  41. d.addErrback(lambda reason: 'error: '+str(reason.value))
  42. d.addCallback(util.println)
  43.  
  44. reactor.listenTCP(8789, pb.PBServerFactory(TestServer()))
  45. connector = reactor.connectTCP("localhost", 8789, factory)
  46. reactor.callLater(2, connector.disconnect)
  47. reactor.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement