Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.06.2007, 14:46
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 1  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
По умолчанию socket

Как определить, что клиент разорвал соединение с сервером?
Не могу я этого сделать в пхп, хоть тресни.
А пингами понгами кидаться не хочу

Старый 06.06.2007, 14:50
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 2  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Немного подробнее о проблеме

У меня есть демон на пхп, который прослушивает порт.
К нему конектятся клиенты по сокету.
Как мне узнать, что клиет разорвал соединение?
Я не могу найти в мануале, как узнать, жив ли сокет или нет.
При разрыве ошибку не показывает. Понимает только тогда, когда не могу записать ничего в сокет

Старый 06.06.2007, 15:31
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 3  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
socket_get_status() ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 06.06.2007, 16:07
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 4  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Цитата:
Сообщение от Skubent
socket_get_status() ?
Он работает только с fsockopen, а я использую socket_create

Старый 06.06.2007, 16:36
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 5  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Фуххххххххххххх. Разобрался!

Код:
//Reads data from the buffer
    function read(){
        $read = array($this->socket);
        $res = socket_select($read, $w = null, $e = null, 0);
        if (!$res){
            return;
        }
        
        $tmp = socket_read($this->socket, 10240);
                
        if (($tmp === FALSE && $this->getError() == 10053) || strlen($tmp) == 0){
            //Handle event
            if ($this->handler){
                $this->handler->handleEvent('onDisconnect');
            }    
        }
       
        //Handle event
        if ($this->handler){
            $this->handler->handleEvent('onData', $tmp);
        }
                
        return $tmp;
    }

Старый 30.06.2007, 03:17
SSka вне форума Посмотреть профиль Отправить личное сообщение для SSka Найти все сообщения от SSka
  № 6  
Ответить с цитированием
SSka

Регистрация: Jun 2007
Сообщений: 14
Каким вообще образом организовуется толковый сокет-сервер на пхп ?
Может у кого есть ссылка на описание с примером ?

Старый 30.06.2007, 12:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от SSka
Каким вообще образом организовуется толковый сокет-сервер на пхп ?
Может у кого есть ссылка на описание с примером ?
Сокет-сервер на php не может быть толковым.

Старый 30.06.2007, 14:39
SSka вне форума Посмотреть профиль Отправить личное сообщение для SSka Найти все сообщения от SSka
  № 8  
Ответить с цитированием
SSka

Регистрация: Jun 2007
Сообщений: 14
Цитата:
Сообщение от __etc
Сокет-сервер на php не может быть толковым.
По этому поводу есть анекдот:
Шерлок Холмс и Доктор Ватсон путешествуя на воздушном шаре попали в ураган, когда погода угомонилась и стало видно землю они обнаружили что потерялись.. Холмс увидел человека в низу и крикнул:
- Ей, где мы находимся ?
- На воздушном шаре. - Ответил человек.
- Это программист. - Сказал Холмс, Ватсону.
- Как вы догадались Холмс ?
- Только программист может дать на четко поставленый вопрос абсолютно точный ответ, который вам ничего не даст.

Сори за флуд, не удержался )

И все же, каким образом нужно реализовать и запустить пхп-скрипт, что бы получился сокет сервер ? При этом система централизована, сервер не обращаетса к клиентам, лишь клиенты ходят на сервер, заберают и отдают что надо и на этом все.
Гораздо проще такую схема реализовать без сокетов, через простое обращение по урл, но частота обращений клиента достаточно высокая (минимум 1 раз/сек), думаю з сокетами будет оптимальние. Поправте меня плз если я ошибаюсь.


Последний раз редактировалось SSka; 30.06.2007 в 14:48.
Старый 01.07.2007, 17:51
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 9  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Конечно ошибаешься. Ты почему-то думаешь, что твой самописный (причем если у тебя есть вопросы - то ты не очень хорошо разбираешься как это делается. А у нас нет толковых ответов, то есть мы тоже не сильно скилованные люди) сервер будет надежнее, быстрее и устойчивее апача и прочих веб-серверов, который разрабатывается уже сто лет как.
Кроме того, скриптовый язык никогда не сравняется в производительности с компилированным кодом.

ЗЫ. 1 запрос в секунду - это совсем не критичная нагрузка.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 01.07.2007, 18:38
SSka вне форума Посмотреть профиль Отправить личное сообщение для SSka Найти все сообщения от SSka
  № 10  
Ответить с цитированием
SSka

Регистрация: Jun 2007
Сообщений: 14
Спасибо за ответ, уж думал не дождусь.
По поводу устойчивости согласен, за производительность вы ошибаетесь, при линковой организации будет вызыватся тот же скрипт, только еще запрос пройдет через пару инстанций + без сокетов будет кушатся больше трафика на заголовки и прочие ньюансы, так при сокетной реализации, образуетса логический канал на более низком уровне протокола, это в свою очередь должно экономить кой какие байты.

"ЗЫ. 1 запрос в секунду - это совсем не критичная нагрузка." - надеюсь что так и есть, иначе прийдетса все переписывать )

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.