установить тайм-аут для сокета.
Краткий пример кода:
Код
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = @socket_connect($sock, $addres[$j], 21);
$output = @socket_read($sock, 1024);
$result = @socket_connect($sock, $addres[$j], 21);
$output = @socket_read($sock, 1024);
И еще, возможно ли в php одновременно запустить несколько коннектов через сокеты?
Спустя 1 час, 30 минут, 31 секунда (19.11.2007 - 22:05) vasa_c написал(а):
Цитата
описание параметров ф-ции socket_set_option()
В документации
Цитата
И еще, возможно ли в php одновременно запустить несколько коннектов через сокеты?
Сделайте нужное количество socket_connect перед socket_read.
Так же, в зависимости от задачи, могут помочь неблокирующие сокеты.
Спустя 17 часов, 28 минут, 1 секунда (20.11.2007 - 15:33) philimon написал(а):
Цитата(vasa_c @ 19.11.2007, 19:05) [snapback]29554[/snapback]
Цитата
описание параметров ф-ции socket_set_option()
В документации
нашел это:
socket_set_option($sock, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 1, "usec" => 0)) - ничего не изменило,
как и та же функция но с другим параметром:
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 0))
Цитата
И еще, возможно ли в php одновременно запустить несколько коннектов через сокеты?
Сделайте нужное количество socket_connect перед socket_read.
Так же, в зависимости от задачи, могут помочь неблокирующие сокеты.
А на русском документация по этой и другим поточным функциям есть где-нибудь? а то я найти не смог.
Спустя 2 минуты, 9 секунд (20.11.2007 - 15:35) vasa_c написал(а):
Что вы хотите сделать?
В чем затруднения?
В чем затруднения?
Спустя 4 минуты, 28 секунд (20.11.2007 - 15:40) philimon написал(а):
Проблема в том, что сделав цикл адресов так на 200, приходится очень долго ждать, если на сканируемом адресе
закрыт нужный порт(около 10 - 20 секунд), а мне нужно установить тайм-аут на 2 сек и, желательно, одновременно
проверять несколько ip.
закрыт нужный порт(около 10 - 20 секунд), а мне нужно установить тайм-аут на 2 сек и, желательно, одновременно
проверять несколько ip.
Спустя 2 часа, 2 минуты, 21 секунда (20.11.2007 - 17:42) vasa_c написал(а):
Возможно, вам поможет банальный fSockOpen() с указанием таймаута?
Спустя 4 часа, 13 минут, 39 секунд (20.11.2007 - 21:56) philimon написал(а):
При работе с этой функцией открывается большое количество портов, т.е. один коннек через fsockopen() равен открытию одного свободно порта. Если в этом нет ничего страшного, то тогда она мне подходит. И сразу вопрос: можно ли их как-нибудь закрыть после выполнения всех действий?
Спустя 14 часов, 30 минут, 3 секунды (21.11.2007 - 12:26) vasa_c написал(а):
Цитата
Если в этом нет ничего страшного, то тогда она мне подходит
Ну, не знаю, попробуйте. У меня 50 параллельно работали нормально.
Думаете socket_create через один порт всё делает?
Цитата
можно ли их как-нибудь закрыть после выполнения всех действий
fClose() ?
Спустя 2 часа, 45 минут, 30 секунд (21.11.2007 - 15:11) philimon написал(а):
Цитата
Думаете socket_create через один порт всё делает?
Не знаю, но файрвол не показывает увеличения открытых портов.
Цитата
fClose() ?
Не помогает.