本文整理汇总了Python中Network.close方法的典型用法代码示例。如果您正苦于以下问题:Python Network.close方法的具体用法?Python Network.close怎么用?Python Network.close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Network
的用法示例。
在下文中一共展示了Network.close方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Controller
# 需要导入模块: import Network [as 别名]
# 或者: from Network import close [as 别名]
class Controller():
def __init__(self):
self.sending_flag = True
self.conf = {}
self.network = None
self.queue = Queue()
self.world = World(self.queue)
self.client = AI()
self.argNames = ["AICHostIP", "AICHostPort", "AICToken", "AICRetryDelay"]
self.argDefaults = ["127.0.0.1", 7099, "00000000000000000000000000000000", "1000"]
def start(self):
self.read_settings()
self.network = Network(ip=self.conf[self.argNames[0]],
port=self.conf[self.argNames[1]],
token=self.conf[self.argNames[2]],
message_handler=self.handle_message)
self.network.connect()
def run():
while self.sending_flag:
event = self.queue.get()
self.queue.task_done()
message = {
'name': Event.EVENT,
'args': [{'type': event.type, 'args': event.args}]
}
self.network.send(message)
Thread(target=run, daemon=True).start()
def terminate(self):
print("finished!")
self.network.close()
self.sending_flag = False
def read_settings(self):
if os.environ.get(self.argNames[0]) is None:
for i in range(len(self.argNames)):
self.conf[self.argNames[i]] = self.argDefaults[i]
else:
for i in range(len(self.argNames)):
self.conf[self.argNames[i]] = os.environ.get(self.argNames[i])
def handle_message(self, message):
if message[Constants.KEY_NAME] == Constants.MESSAGE_TYPE_INIT:
self.world.handle_init_message(message)
elif message[Constants.KEY_NAME] == Constants.MESSAGE_TYPE_TURN:
self.world.handle_turn_message(message)
self.do_turn()
elif message[Constants.KEY_NAME] == Constants.MESSAGE_TYPE_SHUTDOWN:
self.terminate()
def do_turn(self):
def run():
self.client.do_turn(self.world)
Thread(target=run, daemon=True).start()