Как поймать исключение от команды fwrite?

Есть консольное приложение Yii2.
ActionIndex
public function actionIndex()
    {
        $ip = 'tcp://192.168.5.162';
        $port = 10001;
        $storage = 'Автоприем';
        $this->fp = $this->init_rfid($ip,$port, $storage);
        while($this->fp <> 0){
            $this->read_rfid($storage);
            usleep(1500000);
        }
    }


В методе init_rfid отправляется запрос на устройство, инициализация и блокирование канала для общения с ним.
Метод init_rfid
$fp = @fsockopen($ip,$port,$errno, $errstr, 10);
if (!$fp) {
      print_r("ERROR: $errno - $errstr\n");
      $fp = 0;
} else{
...
}

Каждые 1,5 секунды я считываю с него состояние.
Но через некоторое время(сутки, неделю) со стороны устройства соединение сбрасывается и команда fwrite в методе read_rfid улетает с ошибкой
Error: fwrite(): send of 180 bytes failed with errno=10054

Каждые 1,5 секунды не хочу проводить инициализацию, так как для него надо отправлять 2 запроса на устройство.
Как мне контролировать соединение или же обрабатывать исключение от fwrite?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект