При запуске флэшки из браузера с debug версией флэша, спустя 15 секунд после подключения:

Код:
Connection securityError: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: http://91.200.106.130/xxx.swf?36072 не может загрузить данные из 91.200.106.130:10014."]
При запуске из IDE все так же хорошо.
В логе все происходит в одну секунду, после "<policy-file-request/>" флэшка сразу шлет пустой буффер:

Код:
[07:16:43] New client connected: 91.200.106.130 (Total 1 clients)
[07:16:43] -- Client said: <policy-file-request/>�
[07:16:43] client requested crossdomain.xml sending...
[07:16:43] -- Client said:
[07:16:43] client disconnected.
из-за которого, как видно далее, сервер её отключает (это верно?)
Код сервера:

Код AS3:
...
$address = '0.0.0.0';
$port = 10014;
$crossdomain="<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"$port\" /></cross-domain-policy>\0";
...
if (strlen($data)==0 && ord($data)==0)
// так было в одном из примеров, с которого все началось
// сервер отключается при получении пустого буфера
{
// remove client for $clients array
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo date("[H:i:s] ")."client disconnected.\n";
// continue to the next client to read from, if any
continue;
}
if (substr($data, 0, 12) == substr('<policy-file-request/>', 0, 12))
// отправка policy
{
echo date("[H:i:s] ")."client requested crossdomain.xml sending...\n";
socket_write($send_sock, $crossdomain, strlen($crossdomain));
}
...
"xmlsocket://" вообще корректно использовать при Socket?

Код AS3:
Security.loadPolicyFile("xmlsocket://"+MP_SERVER_IP+":"+MP_SERVER_PORT);
PS: пробовал убрать из php скрипта отключение при получении пустого буфера (почему он приходит?), и тогда флэшка шлет их тысячами после запроса полиции. Может это что-то значит?