Re: Можно ли организовать поток через сокет с помощью php ?
Update вопроса:
можно ли читать один сокет множеством php скриптов ?
---------------------------------------------------------------------------------
On 22.11.2010 12:57, Nicholas wrote:
0. Правильно ли я понимаю, что на одном порту может быть только один
сокет ?
Выяснилось что нет - если запустить множество nc серверов на едином
порту, то nc клиенты подсоединяются последовательно с каждым из них и
работают в паре (первый клиент с первым сервером и тд).
Как выбрать определенный сокет произвольно, пока не понятно.
Нашел "сервер сокетов на php"
http://code.google.com/p/tsock/
когда он запущен, можно организовать прием и передачу потока между двумя
php скриптами, без nc, жаль только отваливается по таймауту.
В любом случае, разумным выглядит создание демона "сервер сокетов" не не
php.
Остался главный вопрос: можно ли читать один сокет множеством php скриптов ?
Пока это может делать только первый запущенный скрипт. Если его же
открыть во втором окне - ничего не придет.
Принимающий скрипт выглядит так:
receiver.php
function force_flush(){ ob_end_flush(); flush(); }
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$sourceips = '127.0.0.1';
$port = 8085;
socket_connect($socket, '127.0.0.1', $port);
$buf = "";
get_pkg();
function get_pkg(){
global $socket, $sourceips, $port, $buf;
socket_recv($socket, $buf, 10, MSG_DONTWAIT);
echo $buf;
force_flush();
usleep(500000);
if(true){get_pkg();}
}
--
Sincerely,
Nicholas
Reply to: