[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пара вопросов про сокеты
philimon
Кто-нибудь можета дать описание параметров ф-ции socket_set_option(), не могу нигде найти, а нужно
установить тайм-аут для сокета.
Краткий пример кода:
Код
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$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.

Спустя 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() ?

Не помогает.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.