View Single Post
  #2  
Old 10-18-2012, 10:58 AM
fordprefect fordprefect is offline
Member
 
Join Date: Oct 2012
Location: Vienna, Austria, Europe
Posts: 39
continued

No luck with an answer yet, so I look for a work-around myself. Extend the communication protocol with a connection-test and connect-confirm network events
Code:
import viz
import viznet

CONN_TEST = viznet.id("connTest")
CONN_CONF = viznet.id("connConf")

myName = viz.net.getName()
and, for testing reasons, just try to confirm a connection between MASTER and HEAD1, running the same script on each machine:
Code:
if myName == 'HEAD1':
    doClient()
else:
    doServer()

viz.go()
with the server part:
Code:
def srvrConnectTest(e):
    viznet.server.sendClient(e.client, CONN_CONF, server=myName)
    print 'connect confirmation sent'

def doServer():
    viznet.server.start()
    viz.callback(CONN_TEST, srvrConnectTest)
and the client code being:
Code:
import threading
_TIMEOUT = 3.0
_myServer = None
_confirmEvent = threading.Event()

def clntConnectConfirm(e):
    _myServer = e.server
    print 'received confirmation from', e.server
    _confirmEvent.set()

def doClient():
    _lookfor = 'MASTER'
    if not viznet.client.connect(_lookfor):
        print _lookfor, 'does not run'
    else:
        viz.callback(CONN_CONF, clntConnectConfirm)
        print 'asking for connection confirmation...'
        viznet.client.send(CONN_TEST, client=myName)
        _confirmEvent.clear()
        _confirmEvent.wait(_TIMEOUT)
        print 'the server's name is', _myServer
but this does not work as it seems that the event queue is only worked upon when the script is completed: the wait time on the Event is always used up, the server replies immediately and the client does only react on the event in the very end. (relevant) Output on the client is:
Code:
asking for connection confirmation...
the server's name is None
received confirmation from MASTER
Any idea what I have to do to get the information in time, when I need it, and not ages later??

Thanks,
Best Regards,
Walter
__________________
21 is only half the truth.
Reply With Quote