За последние 24 часа нас посетили 43842 программиста и 1814 роботов. Сейчас ищут 929 программистов ...

Непонятное поведение сокетов

Тема в разделе "PHP для новичков", создана пользователем Лунтик-Некрофил, 29 сен 2011.

  1. Лунтик-Некрофил

    Лунтик-Некрофил Активный пользователь

    С нами с:
    15 май 2010
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Тверь
    Добрый вечер!
    Столкнулся с такой проблемкой: пишу в сокет сервера с php, но читается только второе сообщение.
    Простенький серв:
    Код (Text):
    1. use IO::Socket;
    2.  
    3. my $port = 5555;
    4. my $server = IO::Socket::INET->new(
    5.      LocalPort => $port,
    6.      Type => SOCK_STREAM,
    7.      Proto => 'tcp',
    8.      Listen => 10,
    9.      Reuse => 1
    10. ) or die($!);
    11.  
    12. while (my $client = $server->accept())
    13. {
    14.      $client->autoflush(1);
    15.      my $mess =  <$client>;
    16.      print $mess;
    17.      $client->close;
    18. }
    Записываем в сокет:
    PHP:
    1.  
    2. <?php
    3. $address = '127.0.0.1';
    4. $port = 5555;
    5.  
    6. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    7. $connect = socket_connect($socket, $address, $port);
    8.  
    9. $msg= 'message';
    10. socket_write($socket, $msg, strlen($msg));
    11. socket_close($socket);
    12. ?>
    13.  
    Не читается именно с клиента, написанного на php. Написал на perl'e - работает отлично. Telnet'ом пробовал - тоже работает. Причем они проталкивают сообщения, зависшие с php)
    И при этом, на php ф-ии socket_close() и fclose() значений не возвращают.
    В чем может быть проблема?
    Заранее спасибо.
     
  2. Лунтик-Некрофил

    Лунтик-Некрофил Активный пользователь

    С нами с:
    15 май 2010
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Тверь
    Вообщем написал веб-морду на perl'e - тоже что и с php - запрос висит где-то и приходит только когда его подтолкнет следующий за ним запрос, который в свою очередь тоже виснет. Я так понимаю проблема с настройкой сервера? Или нет?
     
  3. Лунтик-Некрофил

    Лунтик-Некрофил Активный пользователь

    С нами с:
    15 май 2010
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Тверь
    Проблема заключалась в том, что серв читает сокет до первого символа переноса строки. Тему можно закрыть.