| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > ожидание ответа от сервера по средством сокетов |
| Автор: Sniper 18.3.2010, 10:15 | ||
| В продолжении темы: http://forum.vingrad.ru/forum/topic-294532.html Вкратце текущая реализация: есть web-сервер и он посредством сокетов связывается с другим сервером и отправляет ему команды. Ответы на web-сервер приходят в виде строк, где первый параметр тип ответа: "1" команда принята и получен ответ "2" ошибка "3" команда принята, но ещё не обработана так вот когда приходит ответ "3" требуется повторить команду, а если "1", то выполнить необходимые далее действия. в коде выглядит так:
p.s текущую реализацию протокола менять нельзя |
| Автор: wil 18.3.2010, 10:41 |
| Sniper, вместо goto сделай рекурсивный вызов функции. |
| Автор: Sniper 18.3.2010, 10:47 |
а как? |
| Автор: wil 18.3.2010, 10:56 |
| Sniper, сделай функцию, в нее запихни весь этот код. В коде где надо запустить заново из-за ошибки вместо goto поставить вызов функции себя самой. Только продумай чтобы не было бесконечного круга, когда функция будет бесконечно себя вызывать. Например передавай в функцию номер ошибки какая уже по счету и с какого-то количества ошибок делай return 0; а не вызов функции самой себя. |
| Автор: Sniper 18.3.2010, 11:03 |
| хорошо, понял впринципе, а с таймаутом как быть? |
| Автор: wil 19.3.2010, 12:36 |
| А sleep() чем не устраивает? |