PDA

Просмотр полной версии : Сокет сервер - Вопросы!!!


OverFLY
11.10.2006, 22:18
1)Где найти хостинг для сокет сервера???
2)Почему сокет сервер не живет долго хотя и установлен параметр set_time_limit (0);
У меня на локалке около 7-10 минут, на удаленке время жизни разное.
3)Сколько выдержит такой сокет посетителей??

Skubent
12.10.2006, 10:54
1. Любой хостинг разрешит за несколько денег.
2. Почему мои скрипты дохнут в произвольные моменты времени, хотя я делаю preg_replace('\d', '', $data); на все числовые данные ?
3. Без форка - один посетитель в один момент времени.

ffffff
12.10.2006, 12:09
3. не от форка зависит, а от режима и неблокируемости сокета.
Форк используется чтобы отделить демон от консоли, чтобы он продолжить жить своей жизнью

OverFLY
12.10.2006, 12:35
А выдержит ли 40-50 посетителей за раз!!Желательно и больше!! Один два меня не устраивают - изза концепции самого сайта!!!
На любом хостинге говорите?? Пока из 4 не один не подошел!! Два заблокировали функциб создания сокета. На третьем пошел сокет и весит уже там 2 суток, но на письмо в саппорт возможно ли использовать сокеты на сайте. был получен отказ!! А вы говорите на любом!!!

Помомему их все избегают как чумы!!!

Skubent
12.10.2006, 14:40
ffffff, одно соединение - один поток, то есть сокет-то может данные и примет, а обрабатывать их кто будет ? Ответ кто выдаст ?

OverFLY, народ.ру не считается. Выбирай тарифные планы со словами "виртуальный сервер" или что-нибудь в этом роде.

etc
12.10.2006, 14:54
OverFLY, сокет должен быть не на php написан.
И для запуска подобных вещей нужен собственный физический сервер (в крайнем случае виртуальный сервер). И запускать нужно исключительно из командной строки.

OverFLY
12.10.2006, 15:35
Свой серер - этой возможности у меня нет!!
Вирутальный сервер это конечно может и выход . но нехочеться прибегать к такому способу т.к. неизвестно окупит ли вообще сайт оплату за такой вирт.сервер.

Может кто где хостил или слышал что разрешат захостить таую чтуку?

>>Запускать нужно исключительно из командной строки.
Объясните зачем и почему?

Skubent
12.10.2006, 15:44
OverFLY, а как ты его запускаешь ?
И, более общий вопрос - а зачем оно тебе надо ?

etc
12.10.2006, 15:47
Объясните зачем и почему?
Потому что сокет-сервер — это приложение, запущенное как отдельный процесс на сервере.

OverFLY
12.10.2006, 15:57
я его запускаю елементарно!! - т.к. это php скрипт я просто запускаю php файл. Чего тут не понятного!!

А зачем это надо???
Затем что проект основан на этом - вот зачем!!

Потому что сокет-сервер — это приложение, запущенное как отдельный процесс на сервере.
Ну этото понятно!!

etc
12.10.2006, 16:01
я его запускаю елементарно!! - т.к. это php скрипт я просто запускаю php файл. Чего тут не понятного!!
Сокет-сервер на php — зло. php — это не тот язык, на котором нужно писать сокет-сервер. Сокет-сервер должен быть отдельной программой, написанной, скажем, на C++.
Впрочем, даже сервер на php нужно запускать отдельным процессом из командной строки, а не из браузера.

Skubent
12.10.2006, 16:30
я его запускаю елементарно!! - т.к. это php скрипт я просто запускаю php файл.
Что, какая-то ось научилась элементарно запускать php - код ?
Или php интерпретатор читает php файл и исполняет его построчно ?
Или, быть может, у тебя, элементарный ты наш, php компилиться и запускается бинарный файл ?

Или ты просто не знаешь, что происходит, когда ты в браузерной строке набираешь что-то-там/гениальный_файл.пхп и считаешь, что это ты запустил пхп-файл ?


А зачем это надо???
Затем что проект основан на этом - вот зачем!!

Сюдя по твоим вопросам, ты с трудом себе представляешь, что такое сокет и не пользуешься правилом "не знаешь - значит не надо".

Попробую помочь последний раз:
ЗАЧЕМ ТЕБЕ СОКЕТ-СЕРВЕР ?
Меня не интересует твой проект, меня интересует только то, что я спросил.


А выдержит ли 40-50 посетителей за раз

Гений ты наш, в разах не посетители измеряются. 40-50 одновременных запросов не всякий профессиональный сервер выдержит. А 40-50 в минуту - это не нагрузка.

OverFLY
12.10.2006, 16:32
Сокет-сервер на php — зло. php — это не тот язык, на котором нужно писать сокет-сервер. Сокет-сервер должен быть отдельной программой, написанной, скажем, на C++.
Впрочем, даже сервер на php нужно запускать отдельным процессом из командной строки, а не из браузера.
А разве если я его запускаю из браузера он не запускаеться отдельным процессом??
Я могу закрыть браузер, перезагрузить комп..но демон будет висеть на сервере!!

Или я просто тебя непонимаю?

OverFLY
12.10.2006, 16:38
Skubent хватит тут хамить и предираться к словам думаешь только ты тут самый такой умный??

Ты думаешь если я полез создавать сокет сервер то я не взвесил все за и против??? Ты думаешь я такой дурак из за неопытности начал его просто так создавать??

Зачем оно мне надо?? - Затем чтоб предавать в реальном времени информацию между юзерами.... помомему ето очевидно!!! Для ТЕБЯ ввидимо НЕТ!

Про нагрузку..
Ты тоже думаешь я не понимаю что нагрузка зависит не от числа пользователей а от кол-ва передаваемой ими информации?? Я вообще спросил в общих чертах 40-50 посетителей.....т.к. сам незнаю сколько будет посетителей и как активно они будут обмениваться информацией... А вообще нагрузка будет - как в обычном чате...

etc
12.10.2006, 16:41
А разве если я его запускаю из браузера он не запускаеться отдельным процессом??
Я могу закрыть браузер, перезагрузить комп..но демон будет висеть на сервере!!
Не будет висеть, отвалится. Потому что это не отдельный процесс.

Skubent
12.10.2006, 16:55
OverFLY, вот про передачу информацию между пользователями подробнее... Пользователи как информацию подают ? Как получают ? Что вообще представляет собой пользователь как объект относительно твоего гипотетического демона ?


Ты думаешь я такой дурак из за неопытности начал его просто так создавать??


Именно так я и думаю. После фразы про браузер и демона на сервере последние сомнения рассеялись.

В обычном чате (который я видел пару лет назад последний раз) один пользователь генерит примерно 1 запрос в 10 секунд. То есть не так чтобы и много. Хотя обычный хостинг за 3 уе может и не справиться.

Skubent
12.10.2006, 16:58
И вот что... На досуге выстрой цепочку процессов, которые происходят между нажатием тобой кнопки "Перейти" в адресной строке браузера и отображением информации у тебя в браузере.
ЗЫ. Крик "да что ты думаешь, я не знаю чтоль ?" будет воспринят как "я ничего не знаю и знать не собираюсь"

OverFLY
12.10.2006, 18:46
Skubent - ты деб*л

Да пусть хоть даже я вообще новичек и не знаю даже HTML - это не дает права тебе меня оскорблять!!
Ты в 7 лет вообще математики не знал..
И что тебе родители говорили какой ты **пух?

OverFLY
12.10.2006, 18:49
Не будет висеть, отвалится. Потому что это не отдельный процесс.

Странно почему же у меня уже 3 дня весит демон?

Nirth
12.10.2006, 18:58
OverFly
еще раз увижу больше одной единицы пунктуации подряд, забаню, чтобы охладились.

за Лопуха предупреждение номер два, последнее.

OverFLY
12.10.2006, 19:11
Вообще то это не ругательное слово, а имя листа дерева!
А за оскарбления вы не баните? только за нехорошие слова?

Skubent
12.10.2006, 19:19
OverFLY, ответы на мои вопросы будут ?
Или только стенания, имеющие в своей основе нежелание учиться ?

Заметь, у меня пока есть время и желание тебе помочь. У тебя же желания помочь себе же не наблюдается.

OverFLY
12.10.2006, 23:16
Не будет висеть, отвалится. Потому что это не отдельный процесс.
а как запустить его отдельным процессом, ты вроде говорил через командную строку..???
Локально то понятно как ето сделать а как удаленно? на сервере?

etc
13.10.2006, 13:43
Ну, через SSH…
И опять же, если это виртуальный хостинг (стоимость < 15$ в месяц) — этого сделать нельзя, хостер может заблокировать аккаунт, т.к. вешать демонов на виртуальном хостинге в большинстве случаев запрещено.

ffffff
14.10.2006, 16:22
2 Skubent. Ты работал c функциями socket_select и socket_read ? видимо плохо. Клиенты обрабатываются поочерёдно. У меня сервер на php обрабатывает около 200 одновременных клиентов. Можно было бы и больше, но из-за особенностей системного вызова socket_select максимальное количество всего 256, а с перекомпиляцией ядра не хочется мараться.

Skubent
16.10.2006, 13:38
ffffff, 200 одновременно ? Гхм... пока не увижу - не поверю. 200 одновременно не всякий сишный сервер потянет...

Chas
15.11.2006, 00:47
сокет-сервер реально запустить из броузера. нет чесно =)
только он живет несколько минут, потому что в пхп есть переменная, которая задает сколько пхп может кружить по одному и тому же циклу. как только счетчик переполняется, скрипт дохнет.
еще может быть банальнейшая причина - перезагружается хостер, или убиваются админом все повисшие по его мнению процессы.

запускать сокет-сервер из строки броузера - не вариант. однозначно. теле нужен или дедикейтед или виртуальный сервер с разрешенным кроном(man cron под любым юникс-клоном) и телнетом/ссш.

Chas
15.11.2006, 00:57
2Скубент: еще раз печально констатирую тот факт, что с момента моего знакомства с флешером Вы изменились в худшую сторону. Я понимаю, что очередной тупой вопрос очередного чайника не имеющего элементарных знаний про "а как создать вот такую акуенную игруху на сокет-сервере в пхп"(гм... а для чего еще нужен может быть сокет-сервер???) выводит из себя, но... может быть лучше не отвечать?
или ответить как-нить типа "rtfm!!" или "мой опыт работы с сокет-серверами в пхп говорит, и создания мморпг говорит, что создать сокет-сервер на пхп с нагрузкой 800-4000 игроков одновременно(нагрузка обычной игры) невозможно. кроме того, это потребует огромный трафик хостера (2 мбит/с на 800 игроков в среднем) и огромная нагрузка на субд, на что пойдут не все хостеры, т.е. нужен выделенный сервер и договоренности с провайдером" ;-)

Skubent
15.11.2006, 12:49
Chas, обсуждение моих личных качеств - оффтопик для этого форума :)

Я всегда стараюсь помочь человеку, пусть даже он сам не видит просвета в конце пути, который я указываю.
А если человек не хочет учиться, то в скором времени он станет тем, что называется "быдлокодером".
Знал бы ты, как надоели приходящие устраиваться на работу мальчики, которые элементарную собеседовательную задачу решить не могут даже теоретически...