Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Socket и политика безопасности (http://www.flasher.ru/forum/showthread.php?t=121102)

gloomyBrain 07.02.2009 16:23

Socket и политика безопасности
 
Делаю бинарный сокет, все элементарно:
Код AS3:

PORT = 7890;
HOST = "127.0.0.1";
try {
        sock.connect(HOST, PORT);
} catch (e:Error) {
        otf.appendText(e as String);
}

Сервер пишу на яве.
Почитал посты по этой теме, сделал так:
- сервер принимает подключения только на порту 7890
- если пришла строка <policy-file-request/> - отправляем строку с политикой безопасности
- если пришло что угодно, но НЕ запрос политики безопасности - разбираем строку и т.д. ... обычные действия

С чем столкнулся - строка запроса на политику безопасности для моего сервера выглядит вот так:
<policy-file-request/>\0
то есть - одной строкой и с \0 на конце
В ответ передаю в одну строчку вот это:
<cross-domain-policy><allow-access-from domain='*' to-ports='*' /></cross-domain-policy>/0
Слеши перед нулем пробовал в обе стороны
флеш все равно выдает ошибку 2048

Внимание, вопрос:
Что именно нужно отправить флешу, чтобы он принял и согласился на дальнейший реконнект?

BlooDHounD 07.02.2009 17:22

потому что там по идеи должен быть не слэш + ноль, а нулевой байт.

gloomyBrain 07.02.2009 17:44

Отлично =)
А как его организовать?
По-моему, если приходит \0 - значит он и есть ноль-байт по представлению флеша... хотя, возможно - по представлению сервера...
Спасибо

UPD:
Попробовал дописать в конец строки \u0000... флеш по прежнему не воспринимает
ХЗ (хотелось бы знать) что делать

KODERart 07.02.2009 20:09

А если в конце строки не писать ни каких нулевых байтов?
Кажется, флеш их сам добавляет.

gloomyBrain 07.02.2009 20:13

А вот мне не кажется... =)
Флеш их сам добавляет при отсылке сообщений, а при приеме - я пока не заметил, чтобы он что-нибудь дописывал.
Перепробовал уже много комбинаций, пока безрезультатно.

BlooDHounD 08.02.2009 15:36

не знаю на чём на там сервер, но во флэше нулевой байт пишется так: writeByte( 0 ); никакого отношения к строке это не имеет.

vapes 09.02.2009 12:45

http://vapes.na.by/blog/index.php?en...y080416-120458

gloomyBrain 09.02.2009 16:54

2 BloodHound
Спасибо, но вопроса как записать нуль-байт в конце сообщения у меня не возникало, т.к. флеш (у меня) его когда надо сам дописывает.

2 vapes
Спасибо, уже читал и пробовал, флешу не понравилось, он это не понял

Мне кажется, я уже разобрался - дело в том, что сервер по умолчанию мог кодировать не в UTF-8, а во что-то еще. Вот уж не знаю во что, но решил попробовать вручную перекодировать отсылаемую строку.

dimarik 10.02.2009 00:10

Интересно, во что у Вас сервер мог кодировать zero-byte (!).

gloomyBrain 10.02.2009 00:37

зиро байт - он, понятное дело в юникоде =)
А вот передаваемая строка - видимо нет
в том и вся проблема
А если передать не строку, а именно сам файл? по идее тогда же не нужно ничего дописывать?(в общем-то и непонятно как к файлу дописать в конце нуль байт =) )


Часовой пояс GMT +4, время: 21:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.