За последние 24 часа нас посетили 16649 программистов и 1679 роботов. Сейчас ищут 963 программиста ...

Нужна помощь в написании демона

Тема в разделе "Прочие вопросы по PHP", создана пользователем DemmmoNz, 5 фев 2009.

  1. DemmmoNz

    DemmmoNz Активный пользователь

    С нами с:
    5 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Что должен уметь демон:

    1). Именовать подсоединённый клиент (давать ему уникальный id или имя, не важно)
    2). Принимать сообщение от клиента и отправлять это сообщение и имя отправителя всем соединённым клиентам.

    Написание этой милой зверушки нужно для flash-чата, который и будет клиентом. В инете нашёл массу информации, но по делу статьи три от силы.

    Я не прошу написать для меня сервер, хочу просто узнать основные принципы разработки.

    Да, ещё, не пишите, как это реализовать в ООП.

    Ещё немаловажно... Встречал варианты, где демона писали, используя POSIX. Для меня не подойдёт, в данный момент сижу под виндой...

    Заранее спасибо!
     
  2. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    это не совсем PHPшная задача. ее лучше писать на чем то более серьезном, если под виндой то например C#, но можно и на чем угодно где есть асинхронные сокеты.
    а писать так:
    1. открываешь слушающий сокет
    2. в обработчике "присоединился" асинхронно акцептиш его с сокетом , назначаешь ему имя или id-шник и помещаешь в коллекцию клиентов
    3. в обработчике "получил сообщение" делаешь сенд полученного сообщения для всех сокетов из коллекции клиентов
    4. в обработчике "соединение разорвано" выкидываешь сокет из коллекции а оставшимся пишешь "хуман нас покинул"
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    надо писать "Элвис покинул здание"
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  5. DemmmoNz

    DemmmoNz Активный пользователь

    С нами с:
    5 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Спасибо, попробую реализовать. Если будут ещё какие комментарии и своеты - буду рад.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    пить
    курить (сами знаете что)
    ругаться матом на sh
    хватать девок за ноги и другие части тела
    быть неубиваемым по kill -9
    стартовать с запуском системы
    при остановке системы продолжать работать
    отвечать на 666 порту и уметь прокидывать его на сервера Quake в обе стороны
    =)