За последние 24 часа нас посетили 64064 программиста и 1741 робот. Сейчас ищут 885 программистов ...

Вопрос по сокетам

Тема в разделе "Прочие вопросы по PHP", создана пользователем Scorpion111, 17 дек 2015.

  1. Scorpion111

    Scorpion111 Новичок

    С нами с:
    29 ноя 2015
    Сообщения:
    5
    Симпатии:
    0
    Код сервера:
    Код (PHP):
    1. set_time_limit(0); //Скрипт должен работать постоянно
    2.     ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту
    3.     $address = 'localhost'; //Адрес работы сервера
    4.     $port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
    5.     $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    6.   //Связываем дескриптор сокета с указанным адресом и портом
    7.     $ret = socket_bind($sock, $address, $port);
    8.   //Начинаем прослушивание сокета (максимум 5 одновременных соединений)
    9.     $ret = socket_listen($sock, 5);
    10.     $msgsock = socket_accept($sock);
    11.     $msg = "Hello";
    12.     socket_write($msgsock, $msg, strlen($msg));
    13.   //Останавливаем работу с сокетом
    14.     if (isset($sock)) {
    15.         socket_close($sock);
    16.         echo "Сокет успешно закрыт";
    17.     }
    18.  
    Код клиента:
    Код (PHP):
    1. set_time_limit(0); //Скрипт должен работать постоянно
    2.     ob_implicit_flush(); //Все echo должны сразу же выводиться
    3.     $address = 'localhost'; //Адрес работы сервера
    4.     $port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
    5.     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    6.     $result = socket_connect($socket, $address, $port);
    7.     
    8.     $out = socket_read($socket, 1024); //Читаем сообщение от сервера
    9.     echo "Сообщение от сервера: $out.\n";
    10.       
    11.     //Останавливаем работу с сокетом
    12.     if (isset($socket)) {
    13.         socket_close($socket);
    14.         echo "Сокет успешно закрыт";
    15.     }
    16.  
    Запускаю серверный файл через командную строку, потом через Денвер запускаю файл клиента - все работает, вижу ответ сервера. Но когда перезагружаю - не работает, пока заново не запущу сервер в командной строке.

    Как сделать чтоб работало постоянно и можно было раз включить и сколько хочешь раз страницу клиента перезагружать?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    запихнуть в бесконечный цикл код обработки клиента сервером.