![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Всем привет.
Меня эта проблема не обошла стороной, есть самописный сервер на java, во флеше соединяюсь через класс Socket, локально все хорошо. Выложил в сеть флешку и началось.. Как и положено флешка соединяется и первый запрос "<policy-file-request/>", затем отключается и больше не подключается. Смотрю через снифер, флешка каждый раз по разным портам запрашивает политику, сервер по тому же порту и отвечает, на этом все заканчивается. Как увидеть что зашло во флеш, как вообще удостовериться что флешка получила мой ответ? За два дня перепробовал все варианты политики, и с преходами после строк и в конце "\n", и с байтами в конце '\0'. Повторюсь что данные флешу шлются, и флешка обрывает соединение, но снова не подключается, я так понимаю что не нравится политика, как проснифить флешку что в нее вошло? Или может есть какие то другие причины. Подскажите, помогите пожалуйста. |
|
|||||
|
Как один из вариантов проверить не закрыт ли фаерволом порт, по кторому пытается соединиться флешка.
__________________
interplanety |
|
|||||
|
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Мне кажется если бы порт был закрыт, тогда в снифере не отображались бы запросы, а в снифере четко видны запросы на сервер и от сервера обратно по тому же порту.
|
|
|||||
|
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Цитата:
---------------- А вообще может есть какие то сервисы для проверки всего этого дела? Может флешка которая на 100% рабочая и коннектится или сервер который 100% рабочий и отвечает как положено? Последний раз редактировалось Ralph_DiMarko; 30.04.2013 в 14:11. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
XML какой-то стрёмный. По-моему в нём проблема. Есть куча и сокет серверов для проверки, вот, например
http://www.flasher.ru/forum/blog.php?b=275 мой 100% рабочий (если за 3 года не перестал) полиси сервер отдавал такой xml Исходники сокет сервера прикрепил, если что. Они страдают тем, что не отрубают по таймауту тех, кто законнектился и просто висит.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 30.04.2013 в 15:06. |
|
|||||
|
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
спасибо большое за линк и сурсы, похоже меня ждет веселый вечер сегодня. еще наверное подниму смартфокс и посмотрю что снифер говорит. вечером отпишусь о результатах.
----------------------- Оказывается у моего провайдера стоит или висит NAT (как я понял это преобразователь адресов и портов). Подозреваю что проблема из за этого, а еще смотрю в настройках моего сетевого подключения присвоен один ип, а на сервисах определяющих ип определяется совсем другой ип. Мутно как то, запросил нормальный внешний ип. ----------------------- 01.05.2013 01:47 Скачал пример сервера от Котяры по ссылке которую любезно предоставил -De-. У него отдельно идет сервер для раздачи политики и отдельно основной. Решил попробовать так же, и знаете что заработало. Написал отдельный сервер который слушает клиентов на отдельном порту, который лежит на том же хосте что и основной сервер. package policyserver;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class PolicyServer
{
public static void main(String[] args)
{
PolicyServer policy = new PolicyServer();
policy.run();
}
public void run()
{
try
{
ServerSocket server = new ServerSocket(55553);
while(true)
{
try
{
Socket s = server.accept();
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
out.println("<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0");
System.out.println("sent");
out.close();
s.close();
}
catch(IOException e)
{
}
}
}
catch (IOException ex)
{
Logger.getLogger(PolicyServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Еще раз спасибо всем кто комментировал. Последний раз редактировалось Ralph_DiMarko; 01.05.2013 в 03:56. |
|
|||||
|
Цитата:
У меня сервак вот так читает файл политик public static String readPolicy() { try { String policyXML = readFile( new File(FGSMain.SETTINGS_DIR + "crossdomain.xml").getAbsoluteFile()); return policyXML; } catch (IOException e) {} return null; } private static String readFile(File file) throws IOException { FileInputStream stream = new FileInputStream(file); try { FileChannel fc = stream.getChannel(); MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); return Charset.defaultCharset().decode(bb).toString(); } finally { stream.close(); } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:04. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| file , policy , request , socket |
|
|