Нужно ли исправлять ошибки в данных сокета?
-
07-07-2019 - |
Вопрос
При использовании сокетного общения в PHP, нужно ли подтверждать, было ли сообщение успешно получено после отправки каждого сообщения? Или же транспортный уровень (TCP) позаботится об обнаружении и исправлении ошибок, обеспечивая успешную доставку любых отправленных сообщений?
Решение
Вам не нужно беспокоиться о таких вещах на этом уровне. После того, как вы записали данные в открытый сокет, вы можете быть уверены, что они в конечном итоге поступят правильно (при условии, что между конечными точками есть маршрут). вам следует позаботиться о возвращаемых значениях функций сокетов. Проверьте все возвращаемые значения функций socket _ *
для надежной связи.
Другие советы
TCP обрабатывает обнаружение и исправление ошибок, насколько это возможно. В действительности обеспечения успешной доставки не существует (см. экскаватор затухание ), поэтому существует определенный уровень, на котором необходимо учитывать вероятность того, что сообщение не будет доставлено.
Вы можете с уверенностью полагать, что данные были успешно получены, если функция php не указывает на какую-либо конкретную ошибку.