[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: