当前位置: 首页>>代码示例>>Python>>正文


Python Network.close方法代码示例

本文整理汇总了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()
开发者ID:SharifAIChallenge,项目名称:AIC16-Client-Python,代码行数:61,代码来源:Controller.py


注:本文中的Network.close方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。