Показать сообщение отдельно
Старый 01.05.2013, 10:03
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от -De- Посмотреть сообщение
XML какой-то стрёмный. По-моему в нём проблема. Есть куча и сокет серверов для проверки, вот, например
http://www.flasher.ru/forum/blog.php?b=275
мой 100% рабочий (если за 3 года не перестал) полиси сервер отдавал такой xml
Код AS1/AS2:
const char *policy = "<cross-domain-policy>\
	<site-control permitted-cross-domain-policies=\"master-only\"/>\
   <allow-access-from domain=\"*\" to-ports=\"*\" />\
</cross-domain-policy>";
Исходники сокет сервера прикрепил, если что. Они страдают тем, что не отрубают по таймауту тех, кто законнектился и просто висит.
Вариант по-лучше, просто положить в какую-то директорию реальный xml файл политик, а сервак при старте или по команде будет его подгружать и записывать в переменную, ну и, естественно, отдавать клиентам по запросу. Так не будет возможных проблем с экранированием, и можно будет легко изменить сам файл, не перекомпилируя сервер.

У меня сервак вот так читает файл политик
Код AS3:
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();
		}
	}