У меня есть ошибка сокета при запуске socket_recv внутри этой функции:
function readByteXByteSIBmsg() { $msg = ""; $buf=""; try { while( $ret=socket_recv($this->kpSocket,$buf,8192,0)){ $msg.=$buf; if($ret<8192) break; } $this->deb_print("KpCore:readByteXByteSIBmsg:READ LOOP TERMINATED"); } catch (Exception $e) { err_print("KPICore:readByteXByteSIBmsg:Exception on EVENT HANDLER:RECEIVE:\n" . $e); $this->$KP_ERROR_ID = $this->ERR_SOCKET_TIMEOUT; } return $msg; }
Это текст ошибки:
PHP Warning: socket_recv(): unable to read from socket [11]: Resource temporarily unavailable in /home/luca/Documenti/Tesi/M3 Agent Page/lib/KPICore.php on line 236
(строка 236 – это строка с вызовом socket_recv)
Ошибка – EAGAIN
(или EWOULDBLOCK
, иногда это EWOULDBLOCK
и та же ошибка) и означает, что сокет не блокируется и что на данный момент ничего не читать. Вы можете ожидать, пока у вас есть эта ошибка, пока вы не прочитаете что-либо, или вы не используете какой-либо другой метод, чтобы узнать, есть ли данные для чтения, прежде чем пытаться их получить.