Есть 2 функции, 1 в бесконечном цикле проверяет ответ сокета, вторую можно вызвать когда угодно и она так же возвращает ответ сокета, собственно вопрос возникает логичный, если 1 функция постоянно проверяет начиние нужного ответа, то при выполнении 2й ответа никакого не будет, 1я его уже словила.
Ведь даже есть сделать проверку if self.socket.recv() == 'I' это уже будет считаться за получение ответа.