Example #1
0
    def run_client(self):
        return_queue = Queue.Queue()
        udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        udp_socket.settimeout(1)
        self.map_name = select_map_file()

        self.map_storage.getChunkGridFormFile(self.map_name)
        self.target_list, self.pos = self.map_storage.getBotTargetCoords()
        send_message(udp_socket, self.address, self.id, 'server',
                     MT.CLIENT_HELLO_REQUEST, 'client_hello_msg')
        print "Hello msg to server sent"

        print "start request_thread"
        request_thread = Thread(target=self.threads.request_waiting_thread,
                                args=(
                                    self,
                                    udp_socket,
                                    return_queue,
                                ))
        request_thread.start()
        self.start_flows(udp_socket)

        while self.threads.client_connection:
            user_input = raw_input("Input command: ")
            self.process_user_input(user_input, udp_socket)
        request_thread.join()
Example #2
0
    def process_user_input(self, user_input, udp_socket):
        if user_input == "quit":
            send_message(udp_socket, self.address, self.id, 'server',
                         MT.CLIENT_QUIT, "quit")
            self.threads.client_connection = False
            print "close connection client"
            return

        if user_input == "get_map":
            map_data = self.get_map()
            print "current map is: %s\n" % map_data
            return

        if user_input == "send_map":
            self.send_map(udp_socket)
            print 'map send'
            return

        if user_input == "show_trg":
            print 'target list is: %s' % str(self.target_list)
            return

        if user_input == "show_pos":
            print 'self pos is: %s' % str(self.pos)
            return

        if user_input == "update_map":
            self.map_storage.getChunksFromFile(self.map_name)
            self.update_map(udp_socket)
            print "map update request sent"
            return

        if user_input == "trg_dst":
            self.target_distribution(udp_socket)
            return

        if user_input == "start_td_flow":
            if self.threads.target_distribution_flow_thread_is_run:
                print "target distribution is already started"
                return
            self.threads.target_distribution_flow_thread_is_run = True
            self.target_distribution_flow_thread = Thread(
                target=self.threads.target_distribution_flow_thread,
                args=(
                    self,
                    udp_socket,
                ))
            self.target_distribution_flow_thread.start()
            print "target distribution is start"
            return

        if user_input == "stop_td_flow":
            if not self.threads.target_distribution_flow_thread_is_run:
                print "target distribution is not start"
                return
            self.threads.target_distribution_flow_thread_is_run = False
            self.target_distribution_flow_thread.join()
            print "target distribution is stop"
            return

        if user_input == "start_update_flow":
            if self.threads.update_traffic_flow_thread_is_run:
                print "map update flow is already started"
                return
            self.threads.update_traffic_flow_thread_is_run = True
            self.update_traffic_flow_thread = Thread(
                target=self.threads.update_traffic_flow_thread,
                args=(
                    self,
                    udp_socket,
                ))
            self.update_traffic_flow_thread.start()
            print "map update flow is start"
            return

        if user_input == "stop_update_flow":
            if not self.threads.update_traffic_flow_thread_is_run:
                print "map update flow is not start"
                return
            self.threads.update_traffic_flow_thread_is_run = False
            self.update_traffic_flow_thread.join()
            print "map update flow is stop"
            return
Example #3
0
 def send_map_flow(self, udp_socket):
     map_data = self.get_map()
     send_message(udp_socket, self.address, self.id, 'all',
                  MT.SEND_MAP_NOLOG, map_data)
Example #4
0
 def update_map(self, udp_socket):
     map_chunks = self.map_storage.getChunksGrid()
     send_message(udp_socket, self.address, self.id, 'all',
                  MT.MAP_UPDATE_REQUEST, [map_chunks, self.pos])
Example #5
0
 def bots_matrix_string_request(self, udp_socket):
     request_data = str(self.target_dstr_storage.getSelfMatrixString())
     send_message(udp_socket, self.address, self.id, 'all',
                  MT.MATRIX_STRING_REQUEST, request_data)