|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
fsockopen() периодически зависает01.04.2013, 15:42. Показов 2888. Ответов 13
Метки нет (Все метки)
Доброго дня!
Ситуация следующая: Через php и fsockopen() отправляю запрос (1000 байт) на сервер и получаю ответ (1000 байт) примерно раза 3-4 в секунду. Каждый запрос-ответ сопровождается созданием сокета и его закрытием. Наблюдаю картину, что через некоторое время (~39000 итераций) fsockopen() зависает... т.е. обмен обрывается, т.к. последующий запрос осуществляется после успешного выполнения предыдущего. При повторной попытке все возобновляется, т.е. получается что дело не в серверной части. Серверная часть работает для теста локально - маленькая программа получения-отправки. Т.к. зависание происходит периодически, то может быть существует какой-то буфер у пхп/апач? Кто-нибудь связывался с подобным эффектом? Добавлено через 53 минуты Заметил, что IEXPLORER.EXE съедает по чуть-чуть память, то было 36000 КБ, то уже 43000 КБ скушано (минут за 20-30)... хотя я в циклически выполняется только php код.... Добавлено через 3 минуты на 44040 КБ выполнение остановилось.... ![]() Добавлено через 1 минуту Нажал повторно старт - программа продолжила работать, память продолжила расти от 44040 КБ Добавлено через 28 минут Похоже, что проблема не в браузере, а также и не в сервере... что же, товарищи, подскажи? Плииззз)
0
|
|
| 01.04.2013, 15:42 | |
|
Ответы с готовыми решениями:
13
fsockopen() зависает Warning: fsockopen() [function.fsockopen] Периодически зависает компьютер |
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
| 01.04.2013, 16:28 | |
|
кушает память? Кода вы нам не дали, но открывши ресурс(соединение) его надо закрыватб
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|||||||||||
| 01.04.2013, 21:55 [ТС] | |||||||||||
|
Я закрываю соединение после каждого открытия сокета. Сижу с планшета, вечером выложу код. Спасибо за готовность помочь
![]() Добавлено через 5 часов 4 минуты Файл connect.php
Код пишется для функционирования 24/7, а сбой происходит меньше чем через час Подскажите, может где что-то неправильно написано? Добавлено через 3 минуты В fsockopen(..) отсутствует параметр timeout... В экспериментах его пользовал со значениями, 30, 100 и 10000 - не помогало..
0
|
|||||||||||
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
||||||
| 01.04.2013, 23:07 | ||||||
|
вы в функции work_ajax на клиенте вызываете ее же рекурсивно не зависимо от того что вернул вам серверный скрипт. переполнение стека. посмотрите внимательно условие
0
|
||||||
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 01.04.2013, 23:47 [ТС] | |
|
Но погодите, независимо от того, что вернет пхп, повторно вызывается work_ajax() при успешном выполнении ajax. А где переполняется стек в моем случае?
0
|
|
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
| 02.04.2013, 08:41 | |
|
обработчик success вызывается не после завершения функции ajax, а непосредственно перед ее завершением. Он находится в теле функции. поэтому у вас не повторный вызов функции, а бесконечная рекурсия. если вам требуется бесконечный обмен данными с сервером, наверно лучше это делать по таймеру...
1
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
||||||
| 02.04.2013, 10:13 [ТС] | ||||||
|
Спасибо огромнейшее за совет!
А подскажите, как подобное можно реализовать через таймер? Добавлено через 1 час 12 минут поставил в ajax функцию, которая выводит сообщение при неудачном выполнении:
Можно ли узнать что именно было причиной этой ошибки?
0
|
||||||
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
| 02.04.2013, 12:40 | |
|
Не по теме: ничесе написал ответ, а он куда-то пропал для реализации таймера в js есть функции setTimeout и clearTimeout. а насчет ошибки надо смотрть доки той js библиотеки которой вы пользуетесь.. не знаю
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 02.04.2013, 17:49 [ТС] | |
|
Спасибо, буду экспериментировать
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|||||||||||||||||||||
| 03.04.2013, 20:28 [ТС] | |||||||||||||||||||||
|
Добрый вечер!
Нахожусь в глубокой депрессии... Начал изучать web и нахожусь в глубоком непонимании как все работает... Эксперименты не увенчались успехом. Прошу посмотреть на мой код... или я дун-дук что-то не учел, либо так нельзя просто-напросто делать... Код С++ программки - сервера (арбайтен на Линуксе), который обрабатывает запросы и генерит ответ:
Через несколько секунд после нажатия кнопки запуска, начинают увеличиваться счетчик ошибок, httpd.exe грузит core-i7 на 100%... Только помогает перезагрузка OpenServer'a... Что я делаю не так? ...дико запутался...
0
|
|||||||||||||||||||||
| 03.04.2013, 20:38 | |
|
Не по теме: на цпп вы что-то похожее на демон написали(или сервис вин) который постоянно в памяти. Если вы на пхп запустите скрипт с бесконечным таймаутом, то скорее всего его либо скинут, либо его скинут и еще дополнительно вы будете иметь разговор с хостером... Чем ваша служба на цпп не устраивает?
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 03.04.2013, 20:40 [ТС] | |
|
У меня по команде должен постоянно работать обмен с программой на С++ с отображением в браузере... По команде она должна останавливаться...
0
|
|
| 03.04.2013, 20:53 | |
|
Не по теме: это веб сервисы. я в аут, сори
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 03.04.2013, 21:35 [ТС] | |
|
Может быть я заблуждаюсь, но в чем мой подход плох?
Я хочу гонять между цпп и php "сырые" данные, сформированные на мое личное усмотрение, те структуру кадра придумал сам. Не хочу использовать xml, http, и кучу других протоколов... Поэтому и использую сокеты... Жаль, что никто не может подсказать выход из ситуации
0
|
|
| 03.04.2013, 21:35 | |
|
Помогаю со студенческими работами здесь
14
Компьютер периодически зависает. Периодически зависает компьютер Намертво периодически зависает пк Периодически зависает компьютер MineCraft периодически зависает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|