Q1.Мне интересно, что требуется (самый безопасный способ) для восстановления после него.
A: Это зависит от приложения.Слушатель сокета закрывает соединение, или вы установили параметры сокета, которые вы нам не показываете.То, как вы справляетесь с любой из этих вещей, зависит от семантики приложения.
Q2.Мне также интересно, может ли socket_write возвращаться без записи полной строки, которая была передана в него.
A: Да.socket_write()
не может записать байты, некоторые байты или все байты перед возвратом.Если он возвращает значение больше нуля, но меньше длины входа, вы должны отрегулировать смещения (возможно, используя substr()
).Если он возвращает ноль или меньше, проверьте socket_last_error()
на наличие подсказок, можно ли повторить попытку.Это искажение рассматривается в руководстве .