Socket policy ведет себя некультурно

Я его уже второй день упрашиваю, и так, и сяк, а он не разрешает соединение с сервером (который висит на localhost:6969) и всё тут. Полиси файл отдается с того же порта, на который флешка упорно, но безуспешно пытается приконнектится. Сей файл у меня и не файл вовсе, а самая обычная строка следующего вида:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" secure="false"/> 
</cross-domain-policy>\0
которую по сокету отправляет сервер как только его клиент об этом попросит, прислав <policy-file-request />\0.
Я попытался понять, что же не нравится флешу. Но при отладке совершенно ничего не происходит. Если запускать флешку по нажатию Ctrl+Enter — подключение волшебным образом устанавливается, минуя запрос политики от сервера (хотя в коде флешки явно прописана строчка Security.loadPolicyFile("xmlsocket://"+host+":"+port); ). Однако же при отладке или загрузки флешки с локалхоста — возникает ситуация, когда ничего совершенно не происходит. Флешка запускается, спрашивает по сокету свои секюрити, их ей сервер отправляет. Флешка ждет некоторое время, обдумывая видимо бренность бытия програмного кода, и награждает меня следующей информацией:
[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: file:///C|/Users/Fenx/Desktop/DrawClient/client.swf не может загрузить данные из localhost:6969."]
Вообщем, если есть идеи по поводу вышенаписаного — прошу их излагать ниже написаного. Всем наперед спасибо за внимание.
  • Вопрос задан
  • 3335 просмотров
Решения вопроса 1
@Xazzzi Автор вопроса
ಠ_ಠ
Озарение таки пришло.
Оказывается я забыл, что в неблокирующем режиме при вызове write() буфер не отправляется полностью в сокет. Нужно перерегистрировать канал в селекторе на OP_WRITE, и отписывать из буфера в сокет по возможности до конца.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы