Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Сокеты, socket_read


Автор: YAAP 25.4.2008, 13:45
Доброго времени суток.
Писал на пхп скрипт для работы с советами, но столкнулся с проблемой..

$line = @socket_read($accept, 2048))
 - считываю строку, введенную пользователем. 

Код

 // Считываем заданное количество байт из указанного сокета 
        if(FALSE === ($line = @socket_read($accept, 2048))) 
        { 
            print("Невозможно прослушать сокет: " .  
                socket_strerror(socket_last_error()) . "\n"); 
            break 2; 
        } 
         
        switch(strtolower(trim($line))) 
        { ........


Можно ли как то указать время, по истечению которого - прекращать ждать ответ от клиента и продолжить выполнение скрипта ?

Автор: Fortop 25.4.2008, 15:48
http://ua.php.net/manual/ru/function.stream-set-timeout.php

Автор: YAAP 25.4.2008, 16:30
Если юзать $fp = fsockopen("www.example.com", 80); - то нормально.
А вот 

Код

if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) 

    print("Невозможно создать сокет: " . 
        socket_strerror(socket_last_error()) . "\n"); 



if(($error = socket_bind($socket, "127.0.0.1", 666)) < 0) 

    print("Невозможно привязать сокет :" . 
        socket_strerror(socket_last_error()). "\n"); 


if(($error = socket_listen($socket, 5)) < 0) 

    print("Невозможно прослушать сокет: " . 
        socket_strerror(socket_last_error()) . "\n"); 



В этом случае функция socket_set_timeout($socket,2); = ругается. - Ресурс not valid stream resource ...

Автор: Fortop 25.4.2008, 17:11
А прыгнуть всего по двум ссылкам в мануале?

http://ua.php.net/manual/ru/function.socket-get-option.php
http://ua.php.net/manual/ru/function.socket-set-option.php

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)