Как одновременно открыть несколько сокетов?

ChBS

Новичок
Как одновременно открыть несколько сокетов?

Такой вопрос: есть функция, которая посылает сообщение на определенный IP. мне нужно быстро разослать сообщения по нескольким подсетям.Если рассылать последовательно, то нужно уменьшать время stream_set_timeout(), но при его уменьшении клиентские компьютеры не успевают прислать ответ. можно ли одновременно рассылать несколькими сокетами, как это сделать? Или как по другому сократить время рассылки?


function sendmessage($clientip,$message)
{
if(@$fp = fsockopen($clientip, $service_port, $errno, $errstr, 0.05))
{
stream_set_timeout($fp, 0,100000);
//Send message
if(fwrite($fp, $message)) { $string=$string."<font color=green> Сообщение отправлено. </font>";}
else { $string=$string."<font color=red> ПИСЕЦ</font>"; }
//Reading response
if($out = fread($fp, 4196))
{
$out=trim($out);
$string=$string."<font color=green> Доставка подтверждена. </font>";
$string=$string."<font color=green> Запуск: $out. </font>";
}
else { $string=$string."<font color=red> Нет подтверждения о доставке сообщения. </font>";}
fclose($fp);
}
else { $string=$string."<font color=red> Соединение с клиентом не установлено. </font>";}
return($out);
}
 

ssv

Новичок
Re: Как одновременно открыть несколько сокетов?

помойму тебе нужно порыть в сторону потоков ( thread )
 
Сверху