Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Подключение Flash к java серверу через сокеты


Автор: SDA 26.11.2010, 07:28
Здравствуйте уважаемые, помогите подключить Flash к java серверу
Точнее объясните мне, как правильно.

Известно, что при подключении через сокеты Флешьплеер шлет строку
<policy-file-request/> с \нулевым байтом в конце, на что сервер должен ответить XML строкой, после этого, сервер должен разорвать соединение с Флешьплеером, и если ответ посланный сервером удовлетворяет требованиям Флешьплеера, то Флешьплеер снова подключается и работает в обычном режиме подключения.

я уже и так и так пробовал, как правильно разорвать соединение? 

Код

while(runs) {
           String ClientString = ins.readLine();
           
           String FlashT = "<policy-file-request/>\0";
           
           if(ClientString.equals(FlashT)){
               String Reply_f = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0";
               outs.write(Reply_f);
               outs.newLine();
               outs.flush();
               //ins.close();
               //outs.close();
              // ClSocket.close();
               runs = false;
           }


по сути нужно останавливать поток? 
Странное дело, с сервером который написан на С++ по такому принципу все работает.. Хотя с потоками я работаю только в java.. Подскажите, что не так?

То Mod:перенесите пожалуйста тему в ветку "Работа с сетью".

Автор: _sten_ 5.12.2010, 17:32
Цитата

Известно, что при подключении через сокеты Флешьплеер шлет строку <policy-file-request/> с \нулевым байтом в конце

флеш шлет такой риквест только в том случае если сервер находится на другом хосте чем сама флешка.

Когда мне приходилось делать такое то я просто положил файл crossdomain.xml:
Код

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

в корень проекта так что б он был доступен по адрессу: http://mydomain/crossdomain.xml. Более подробно http://curtismorley.com/2007/09/01/flash-flex-tutorial-how-to-create-a-crossdomainxml-file/


Цитата

Код

while(runs) {
           String ClientString = ins.readLine();
           
           String FlashT = "<policy-file-request/>\0";
           
           if(ClientString.equals(FlashT)){
               String Reply_f = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0";
               outs.write(Reply_f);
               outs.newLine();
               outs.flush();
               //ins.close();
               //outs.close();
              // ClSocket.close();
               runs = false;
           }


это в сервлете и поток outs и респонса? если да закрывать поток не нужно - этим займется веб сервер. Кста освобождать ресурсы лутче в блоке final)

Цитата

Странное дело, с сервером который написан на С++ по такому принципу все работает.. Хотя с потоками я работаю только в java.. Подскажите, что не так?

честно говоря не понял о чем речь....

Автор: SDA 5.12.2010, 22:00
Спасибо, я уже разобрался, даже сервер переписал, осталось только доделать, и можно тестировать..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)