Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> socket_accept срабатывает при отсутсвии подключени 
:(
    Опции темы
zFermer
Дата 3.2.2012, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.7.2011

Репутация: нет
Всего: нет



Есть простейший код сервера
Код

<?php
     header('Content-Type: text/plain;');
     error_reporting(E_ALL ^ E_WARNING);
     set_time_limit(0);
     ob_implicit_flush();
     
     echo "-= Server =-\n\n";

     $address = 'localhost';
     $port    = 10001;

     try {
     
         echo 'Create socket ... ';
         if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
             throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
         } else {
             echo "OK\n";
         }

         echo 'Bind socket ... ';
         if (($ret = socket_bind($sock, $address, $port)) < 0) {
             throw new Exception('socket_bind() failed: '.socket_strerror(socket_last_error())."\n");
         } else {
             echo "OK\n";
         }

         echo 'Listen socket ... ';
         if (($ret = socket_listen($sock, 5)) < 0) {
             throw new Exception('socket_listen() failed: '.socket_strerror(socket_last_error())."\n");
         } else {
             echo "OK\n";
         }

         socket_set_blocking ($sock, TRUE);

         do {
             echo 'Accept socket ... ';
             if (($msgsock = socket_accept($sock)) < 0) {
                 throw new Exception('socket_accept() failed: '.socket_strerror(socket_last_error())."\n");
             } else {
                 echo "OK\n";
             }

             $msg = "Hello, Client!";
             echo "Say to client ($msg) ... ";
             socket_write($msgsock, $msg, strlen($msg));
             echo "OK\n";

             do {
             
                 echo 'Client said: ';
                 if (false === ($buf = socket_read($msgsock, 1024))) {
                     throw new Exception('socket_read() failed: '.socket_strerror(socket_last_error())."\n");
                 } else {
                     echo $buf."\n";
                 }
                 
                 if (!$buf = trim($buf)) {
                     continue;
                 }
                 
                 if ($buf == 'shutdown') {
                     socket_close($msgsock);
                     break 2;
                 }
                 
                 echo "Say to client ($buf) ... ";
                 socket_write($msgsock, $buf, strlen($buf));
                 echo "OK\n";
                 
             } while (true);
             
         } while (true);

     } catch (Exception $e) {
         echo "\nError: ".$e->getMessage();
     }
     
     if (isset($sock)) {
     
         echo 'Close socket ... ';
         socket_close($sock);
         echo "OK\n";
     
     }
?>


Выкладываю на рядового хостера, почемуто, не дожидайясь каких либо подключений socket_accept срабатывает и начинает общение, с несуществующим подключившимя. В чем можето быт ьпроблема?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.