За последние 24 часа нас посетили 17657 программистов и 1721 робот. Сейчас ищут 994 программиста ...

мульти-сокеты

Тема в разделе "Прочие вопросы по PHP", создана пользователем ast, 14 ноя 2007.

  1. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    Всем привет. я тут как бы новичек, на форуме.
    Без тягомотины и остального.
    Нужна помощь по созданию клиентского приложения на сокетах, которое будет создавать несколько
    соединений с определённым сервером и дальше общаться с ним.
    делал реализацию так:
    есть класс API, в цикле foreach перебирал экземпляры класса в каждом из них вызывал connect.
    Проблема - когда много клиентов в одном скрипте - задержка слишком большая, предыдущие клиенты
    отрубаються из-за тайм-аута на сервере, к которому идёт коннект.

    подсказали использовать socket_select, но везде инфа только по серверам на сокет_селект. буду рад любому
    мануалу по socket_select в клиентах. благодарю
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Коннект должен быть один раз, а всё остальное (в том же foreach) должно работать с его экземпляром (хз как назвать). Почему ip твоего сайта ещё не забанен на подключаемом сервее - бооольшой вопрос.
     
  3. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    lexa
    да всё норм. это разрешенно. считай, я делаю многоюзерный клиент ICQ, который будет писать и принимать данные в каждом экземпляре icq-uin'а. вот, примерно, что надо
     
  4. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    аст, так __НЕ НАДО__ делать даже если сейчас у вас это проходит.
     
  5. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    armadillo
    это был мой тестовый скрипт. сейчас я вот собираюсь поменять движок. а по поводу легальности - могу уверить, что это разрешенно на серваке, и никому я плохо не сделаю. если интерестно, стукни в аську, объясню, для чего
     
  6. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    while (!$aslnoledge) {
    даже если это "можно", делать так НЕ НУЖНО. точно так же как создавать мусорные базы на гигабайты или не нужные долгие циклы. То, что это проблема будет не у тебя, а у соседа, и тебя это не беспокоит - наглое свинство.
    }
     
  7. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    armadillo
    ты помойму даже не понял, о чем речь идёт......... >.< ))))))))))))))) мде)))))мне нада не забить коннектами другой сервак. мне нужно подключиться к нему 30ю соединениями по сокетам и потом общаться. если учесть, что помимо моих коннектов, так же к серваку присоедины десятки тысяч других людей. вникаешь?
     
  8. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    ты всерьез думаешь что на серваке открыто десятки тысяч коннектов?
     
  9. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    armadillo
    Я ВСЕРЬЁЗ ЭТО ЗНАЮ))))))))))))))))))))))))))))))))))))))))))))))) это игровой сервер) проста, он предоставляет разные сервисы, к примеру, получение инфы о персонаже. и так далее... вот мне и надо сделать несоклько подключений))))))))
     
  10. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Используй GameQ.
     
  11. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    так вот. ты МОЖЕШЬ сделать это последовательно, но делаешь это массой коннектов. Это есть свинство.
    И приведи мне пример организации такого сервера. ))
    Вряд ли там разработчики такие же балбесы как ты и держат подключения открытыми.

    Впрочем, если это игровой сервер, тебя забанят быстро. ))
     
  12. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    armadillo
    ты чето слишком умный. тебе мозг не жмёт?
    http://www.timezero.ru вот те пример, умник. разбирай сколько хочешь.

    свинство не разобравшись с темой ругать автора. иди в программирование для начинающих, учи там. асилил?
     
  13. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    armadillo
    и вапще, явно думаешь не головой, а лишь бы померяца. ты то уверен что заблочат? так нехрен других учить, умник нашелся тут... на написание такого рода ботов полученно разрешение от администрации
     
  14. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    спасибо, ссылка действительно интерестная, но под мои запросы не попадает к сожалению. мне сейчас вообще нужна помощь с организацией нескольких подключений. но gameq запомнил, авось пригодица) спасиб)
     
  15. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    > http://www.timezero.ru

    Тогда не используй GameQ, а ковыряй GameQ. Тема сокетов там раскрыта.
     
  16. ast

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

    С нами с:
    14 ноя 2007
    Сообщения:
    22
    Симпатии:
    0
    lexa
    спасибо!)