php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 18.08.05 13:37
Оценка:
возникла ситуация.

на сервере линукс, работает программа, которая по коннекту сокета, порождает процесс на этот сокет, и с ним уже работает.
на этом этапе все замечательно.

возникает проблема с пхп.
невозможно открыть постоянное соединение по сокету!
есть функция pfsockopen(), но не понятно, как далее (допустим после перезагрузки страницы)
обращаться в (поидее открытый) сокет?

т.е. получается так, загружается страница, открывает сокетное соединение, на сервере создается процесс, после обработки скрипта, соединение есстесно теряется, и на сервере остается жить суспенд-процесс.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: php+socket
От: Rumata Россия http://atamur.livejournal.com
Дата: 18.08.05 14:00
Оценка:
Здравствуйте, bytex, Вы писали:

B>возникла ситуация.


B>на сервере линукс, работает программа, которая по коннекту сокета, порождает процесс на этот сокет, и с ним уже работает.

B>на этом этапе все замечательно.

B>возникает проблема с пхп.

B>невозможно открыть постоянное соединение по сокету!
B>есть функция pfsockopen(), но не понятно, как далее (допустим после перезагрузки страницы)
B>обращаться в (поидее открытый) сокет?

B>т.е. получается так, загружается страница, открывает сокетное соединение, на сервере создается процесс, после обработки скрипта, соединение есстесно теряется, и на сервере остается жить суспенд-процесс.


Вообще, афаик никак. См. php.net/pfsockopen в комментариях.

Единственный, на мой взгляд, вариант, породить на сервере (где пхп) какой-то процесс, с которым и будет договариватьсяч пхп.
Re[2]: php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 18.08.05 14:23
Оценка:
Здравствуйте, Rumata, Вы писали:

R>Вообще, афаик никак. См. php.net/pfsockopen в комментариях.


R>Единственный, на мой взгляд, вариант, породить на сервере (где пхп) какой-то процесс, с которым и будет договариватьсяч пхп.


хм... а если реализовать с++ программу как cgi-апплет?
взаимодествие с пхп возможно?
- — — — —
Thanks,
Bytex.
Re[3]: php+socket
От: glyph  
Дата: 18.08.05 14:29
Оценка:
Здравствуйте, bytex, Вы писали:

B>хм... а если реализовать с++ программу как cgi-апплет?

B>взаимодествие с пхп возможно?
Да необязательно как cgi. Обычное приложение. Потом через system(). Да и еще есть варианты...
... << RSDN@Home 1.1.4 beta 3 rev. 193>>
Re[4]: php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 18.08.05 14:36
Оценка:
Здравствуйте, glyph, Вы писали:

G> Да необязательно как cgi. Обычное приложение. Потом через system(). Да и еще есть варианты...


так, вызов этой функции запускает программу, а это не нужно, т.к. программа уже должна висеть с открытым сокетом, а пхп нужно лишь передавать и принимать информацию из этого сокета.
важно чтобы сокет был постоянно открыт с однин клиентом!
- — — — —
Thanks,
Bytex.
Re[5]: php+socket
От: glyph  
Дата: 18.08.05 14:51
Оценка:
Здравствуйте, bytex, Вы писали:

B>важно чтобы сокет был постоянно открыт с однин клиентом!

Ага, понял... С ходу ничего красивого придумать не могу... Разве что в стиле "блокировки файлов как флага"? К примеру, создать файл, читаемый и средствами php, и средствами программ на С. но... некошерно как-то.
... << RSDN@Home 1.1.4 beta 3 rev. 193>>
Re[6]: php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 18.08.05 14:56
Оценка:
Здравствуйте, glyph, Вы писали:

G> Ага, понял... С ходу ничего красивого придумать не могу... Разве что в стиле "блокировки файлов как флага"? К примеру, создать файл, читаемый и средствами php, и средствами программ на С. но... некошерно как-то.


скорее всего, вариант обмена инфой через файл, отпадет сразу, т.к. время выполнения скрипта будет происходить долго (не значительно, правда), итак, вместо того, тобы средствами пхп открывать сокет, используется внешняя программа.
тут нужно быстродействие...
- — — — —
Thanks,
Bytex.
Re[6]: php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 19.08.05 12:05
Оценка:
больше вариантов нет?
прийдется тогда забить на веб,
и начать разработку кутэ приложений...
а хотелось революцию провернуть
- — — — —
Thanks,
Bytex.
Re[7]: php+socket
От: glyph  
Дата: 19.08.05 12:57
Оценка:
Здравствуйте, bytex, Вы писали:

B>больше вариантов нет?

Рамки жесткие.
Кстати, не понял, почему быстродействие будет низким. Кажется, быстродействие будет ограничено скоростью соединения пользователя с сервером, а не скоростью чтения\записи в файлы на самом сервере.
Есть еще вариант. Обычное приложение, работающее с сокетом и пишущая\получающая результат через файл. Т.е. в файл она пишет html, из другого получает параметры\команды. Придется писать парсер конечно, однако perl или java имеют готовые модули... Поднапрячься — можно и для С найти...
B>а хотелось революцию провернуть
Запасайся апельсинами.
... << RSDN@Home 1.1.4 beta 3 rev. 193>>
Re[7]: php+socket
От: Сергей  
Дата: 19.08.05 18:36
Оценка: 4 (1)
Здравствуйте, bytex, Вы писали:

B>больше вариантов нет?

B>прийдется тогда забить на веб,
B>и начать разработку кутэ приложений...

Да ладно вам, нашли проблему. Слышали про существование локальных сокетов?
Итак, пишем прогу, которая должна быть запущена постоянно и она должна быть приконнекчена к сокету. Эта же прога открывает локальный UNIX-сокет, и банально перекидывает данные из сокета в локальный сокет и наоборот.
Пишем ПХП-скрипт, который коннектится к локальному сокету и работает с ним так же, как и с нормальным сетевым, и отконнекчивается. И ваши волосы будут гладкими и шелковистыми…
Если очень надо, даже прогу накатать могу.
Re[8]: php+socket
От: bytex Интернет http://www.mrgroot.com
Дата: 22.08.05 07:13
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Да ладно вам, нашли проблему. Слышали про существование локальных сокетов?

С>Итак, пишем прогу, которая должна быть запущена постоянно и она должна быть приконнекчена к сокету. Эта же прога открывает локальный UNIX-сокет, и банально перекидывает данные из сокета в локальный сокет и наоборот.
С>Пишем ПХП-скрипт, который коннектится к локальному сокету и работает с ним так же, как и с нормальным сетевым, и отконнекчивается. И ваши волосы будут гладкими и шелковистыми…
С>Если очень надо, даже прогу накатать могу.

насколько я понял, пхп сокет (одноразовый) коннектится к локальной проге, говоря, что надо либо отослать, либо принять данные, так?
гениально как я сам не догадался спасибо огромное
- — — — —
Thanks,
Bytex.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.