Пример #1
0
 def _startLogOn(self, chatui):
     print('Connecting...', end=' ')
     d = pb.getObjectAt(self.host, self.port)
     d.addCallbacks(self._cbConnected,
                    self._ebConnected,
                    callbackArgs=(chatui, ))
     return d
Пример #2
0
 def render(self, request):
     """Render this request, from my server.
     This will always be asynchronous, and therefore return NOT_DONE_YET.
     It spins off a request to the pb client, and either adds it to the list
     of pending issues or requests it immediately, depending on if the
     client is already connected.
     """
     if not self.publisher:
         self.pending.append(request)
         if not self.waiting:
             self.waiting = 1
             pb.getObjectAt(self.host, self.port, 10).addCallbacks(self.connected, self.notConnected)
     else:
         i = Issue(request)
         self.publisher.callRemote('request', request).addCallbacks(i.finished, i.failed)
     return NOT_DONE_YET
Пример #3
0
def main():
    rootobj_def = pb.getObjectAt("localhost", 8800, 30)
    rootobj_def.addCallbacks(got_rootobj)
    obj2_def = getSomeObjectAt("localhost", 8800, 30, "two")
    obj2_def.addCallbacks(got_obj2)
    obj3_def = getSomeObjectAt("localhost", 8800, 30, "three")
    obj3_def.addCallbacks(got_obj3)
    reactor.run()
Пример #4
0
def main():
    rootobj_def = pb.getObjectAt("localhost", 8800, 30)
    rootobj_def.addCallbacks(got_rootobj)
    obj2_def = getSomeObjectAt("localhost", 8800, 30, "two")
    obj2_def.addCallbacks(got_obj2)
    obj3_def = getSomeObjectAt("localhost", 8800, 30, "three")
    obj3_def.addCallbacks(got_obj3)
    reactor.run()
Пример #5
0
    def render(self, request):
        """Render this request, from my server.

        This will always be asynchronous, and therefore return NOT_DONE_YET.
        It spins off a request to the pb client, and either adds it to the list
        of pending issues or requests it immediately, depending on if the
        client is already connected.
        """
        if not self.publisher:
            self.pending.append(request)
            if not self.waiting:
                self.waiting = 1
                pb.getObjectAt(self.host, self.port, 10).addCallbacks(self.connected, self.notConnected)

        else:
            i = Issue(request)
            self.publisher.callRemote('request', request).addCallbacks(i.finished, i.failed)
        return NOT_DONE_YET
Пример #6
0
 def _start(self):
     print 'Waiting for Server', self.host
     dfr = pb.getObjectAt(self.host, PORT, 30)
     dfr.addCallbacks(self._gotRemote, self._remoteFail)
Пример #7
0
 def testGetObjectAt(self):
     d = pb.getObjectAt("127.0.0.1", self.portno)
     d.addCallback(self.addRef)
     d.addCallback(self._checkRootObject)
     return d
Пример #8
0
 def connect(self):
     deferred = pb.getObjectAt("localhost", 8800, 30)
     deferred.addCallbacks(self.got_obj, self.err_obj)
Пример #9
0
    def ok(self, (int1, int2, shortString, hugeString)):
        print 'data ok'
        print int1, int2, repr(shortString), len(hugeString)

    def nok(self, f):
        print 'data not ok'
        return f

if __name__ == '__main__':
    import sys
    from twisted.internet import reactor
    from twisted.python import log
    log.startLogging(sys.stdout)
    PORTNO = 8123
    if sys.argv[1] == 'server':
        from twisted.spread.flavors import Root
        from twisted.spread.pb import BrokerFactory
        class SimpleRoot(Root):
            def rootObject(self, broker):
                return DatabaseThingy()
        reactor.listenTCP(PORTNO, BrokerFactory(SimpleRoot()))
    elif sys.argv[1] == 'client':
        from twisted.spread.pb import getObjectAt
        def getIt(x):
            r = ResultGetter(x)
            return r.getRemoteResult()
        getObjectAt("localhost", PORTNO).addCallback(getIt)
    else:
        raise sys.exit("usage: %s (server|client)" % sys.argv[0])
    reactor.run()
Пример #10
0
 def testGetObjectAt(self):
     root = dR(pb.getObjectAt("127.0.0.1", self.portno))
     self._checkRootObject(root)
     root.broker.transport.loseConnection()
Пример #11
0
# Twisted, the Framework of Your Internet
# Copyright (C) 2001 Matthew W. Lefkowitz
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

from twisted.spread import pb
from twisted.internet import main
def gotObject(object):
    print "got object:",object
    object.echo("hello network", pbcallback=gotEcho)
def gotEcho(echo):
    print 'server echoed:',echo
    main.shutDown()
def gotNoObject(reason):
    print "no object:",reason
    main.shutDown()
pb.getObjectAt("localhost", 8789, gotObject, gotNoObject, 30)
main.run()
Пример #12
0
 def connect(self):
     deferred = pb.getObjectAt("localhost", 8800, 30)
     deferred.addCallbacks(self.got_obj, self.err_obj)
Пример #13
0
    def remote_ring(self, callerID):
        print "Your phone is ringing.  It's a call from", callerID


bugClient = BugClient()
phoneClient = CellClient()

# Log-In Information
username = "******"
password = "******"
bugName = "franz"
phoneNumber = "222-303-8485"

# A little magic to get us connected...
getObjectAt("localhost", portno).addCallback(
    # challenge-response authentication
    lambda r: authIdentity(r, username, password)
).addCallback(
    # connecting to each perspective with 'attach' method of remote identity
    lambda i: DeferredList([
        i.callRemote("attach", "metamorph", bugName, bugClient),
        i.callRemote("attach", "cellphone", phoneNumber, phoneClient)
    ])
    # connecting perspectives to client-side objects
).addCallback(lambda l: (bugClient.gotPerspective(l[0][1]),
                         phoneClient.gotPerspective(l[1][1])))

reactor.callLater(5, reactor.stop)  # In five seconds, log out.
reactor.run()  # Start the main loop.
Пример #14
0
 def testGetObjectAt(self):
     d = pb.getObjectAt("127.0.0.1", self.portno)
     d.addCallback(self.addRef)
     d.addCallback(self._checkRootObject)
     return d
Пример #15
0
 def _startLogOn(self, chatui):
     print('Connecting...', end=' ')
     d = pb.getObjectAt(self.host, self.port)
     d.addCallbacks(self._cbConnected, self._ebConnected,
                    callbackArgs=(chatui,))
     return d
Пример #16
0
    def makeConnection(self):
        """Try to connect to an existing server."""

        print 'Client: connecting'
        pb.getObjectAt(self.game.host, self.game.port,
                       10).addCallbacks(self.gotObject, self.gotNoObject)
Пример #17
0
 def _start(self):
     print('Waiting for Server...')
     dfr = pb.getObjectAt(self.host, PORT, 30)
     dfr.addCallbacks(self._gotRemote, self._remoteFail)
Пример #18
0
        (int1, int2, shortString, hugeString) = xxx_todo_changeme
        print('data ok')
        print(int1, int2, repr(shortString), len(hugeString))

    def nok(self, f):
        print('data not ok')
        return f

if __name__ == '__main__':
    import sys
    from twisted.internet import reactor
    from twisted.python import log
    log.startLogging(sys.stdout)
    PORTNO = 8123
    if sys.argv[1] == 'server':
        from twisted.spread.flavors import Root
        from twisted.spread.pb import BrokerFactory
        class SimpleRoot(Root):
            def rootObject(self, broker):
                return DatabaseThingy()
        reactor.listenTCP(PORTNO, BrokerFactory(SimpleRoot()))
    elif sys.argv[1] == 'client':
        from twisted.spread.pb import getObjectAt
        def getIt(x):
            r = ResultGetter(x)
            return r.getRemoteResult()
        getObjectAt("localhost", PORTNO).addCallback(getIt)
    else:
        raise sys.exit("usage: %s (server|client)" % sys.argv[0])
    reactor.run()