You need to provide the configuration to your server, otherwise you cannot read the configuration properties. For example:
Code:
manager = IceStorm.TopicManagerPrx.checkedCast(communicator.propertyToProxy('TopicManager.Proxy'))
This code cannot work with the property "TopicManager.Proxy" defined. Of course, you are not required to use properties. You could equally well do something like:
Code:
manager = IceStorm.TopicManagerPrx.checkedCast(communicator.stringToProxy('IceStorm/TopicManager:tcp -p 12345 -h 192.168.1.1"))
Using configuration properties is often more convenient, as you can change various aspects of your application without modifying the code. To provide configuration properties in your example, you can run with --Ice.Config=config.sub, or you can manually load the configuration using something like:
Code:
Ice.InitializationData initData = Ice.InitializationData()
initData.properties = Ice.createProperties(args)
initData.properties.load("config.sub")
Ice.Communicator comm = Ice.initialize(data=initData)
The structure of server.py is pretty strange also. Why do you want to put the subscriber in a thread?