PHP Socks5 Server

Discussion in 'PHP' started by Qwert321, 12 Nov 2012.

  1. Qwert321

    Qwert321 Banned

    Joined:
    25 Jan 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Всем привет.
    Найдется ли здесь добрый PHP гуру, кто шпетрит в сокетах под php... дело в том что написал сервак сокс5, под виндой на апаче работает на ура... под юниксом, по одному запросу тоже работает, но когда пачка запросов, то захлебывается и не может что-ли дослать клиенту пакеты... то-ли ещё чего...
    Код в пм скину...
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Qwert321 подковерную помощь ищите в разделе о работе. Либо выкладывайте что есть.

    Запуск сокс5 _сервера_ апачем - вы либо не понимаете что делаете, либо придумали что-то хитрое (во второе - не верю)
     
    _________________________
  3. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    2 Gifts и через апатч можно. Если скрипт пустить в фоне через system... > /dev/null 2>&1 & если вы понимаете о чем я :)
     
    _________________________
  4. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    0_0 предположу, что если так запускать сокс-сервер, то в качестве сервера под всё это надо юзать один из терминалов qiwi. А то недостаточно глупая схема получается.
     
    _________________________
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    2 Trinux, поправь если говорю не правильно. Почему такая схема не будет работать - запуск фонового процесса из под процесса под которым выполняется скрипт? Самому интересно как на самом деле. Не задавался никогда этим вопросом.

    Давным давно на Perl, который исполняется как CGI - сервер нормально запускался - пока ты страницу не закроешь.
     
    _________________________
  6. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    На локале создал 2 скрипта
    1. <?php system("/usr/bin/php -f /var/www/server.php > /dev/null 2>&1 &"); ?>
    2. скопировал от сюда http://myrusakov.ru/php-socket-server.html
    3. Перешел по адресу в обозревателе http://localhost/lan.php
    4. ps -aux
    www-data 13158 61.7 0.1 31360 6752 ? R 18:31 2:01 /usr/bin/php -f /var/www/server.php
    5. Закрыл обозреватель.
    6. Процесс висит.
    7. nc localhost 1935
    Hello!

    ^ это из скрипта...

    Эм. вроде как работает... Trinux или что-то не так?
     
    _________________________
  7. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Да я и не спорю что будет работать. Но для полного абсурда предложил вместо сервера физического использовать комп в терминале. Желательно, чтобы последний работал на gprs модеме. Самое оно для соксов.
     
    _________________________
  8. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    2 Trinux, у меня были ситуации, когда нужно было быстро поднять прокси минут на 20... скрипты на PERL вполне себя оправдывали.
     
    _________________________
  9. Qwert321

    Qwert321 Banned

    Joined:
    25 Jan 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Как то не приходилось с Perl сталкиваться... теперь видимо придется... у вас как знающих, как остановить выполнение скрипта допустим через 20 мин?
    в пример:
    PHP:
    #!/usr/bin/perl 

    use IO::Socket::INET

    $SIG{'CHLD'} = 'IGNORE'
    $bind IO::Socket::INET->new(Listen=>10Reuse=>1LocalPort=>$port) or  die "Can't bind port $port\n"

    while(
    $client $bind->accept()) и т.д.... { 
    как остановить скрипт, например если создается файл в папке /tmp/stop.script ?
    php прим. так if(file_exists('/tmp/stop.script')) ... exit;

    ну или задать определенное время выполнения скрипта на 20 мин?
     
  10. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Qwert321, если это сервер то по идее у него должен быть цикл бесконечный который ждет клиентов. - там и вставь проверку... функция time date mktime.
     
    _________________________
  11. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    для этих целей есть 3proxy
     
    _________________________