серверное сокет air 2.6 и разъем ActionScript 3 - PullRequest
0 голосов
/ 09 марта 2012

Я написал серверное приложение в AIR 2.6. Я использую класс ServerSocket для серверной части, а клиентская часть написана на ActionScript 3 и использует класс Socket. Когда я подключаю клиента к серверу с локальным IP (127.0.0.1 или 192.168.0.2), я получаю следующее сообщение: <policy-file-request/>. Затем я отправляю файл политики клиенту с сервера, и соединение успешно.

Однако, когда я подключаю клиента к серверу с моим глобальным IP-адресом (IP-адрес назначен моим интернет-провайдером), я получаю то же сообщение с запросом файла политики, но установить соединение не удается. Порты открыты (843, 4444 и 5555), но все равно не повезло. Мой файл политики выглядит следующим образом:

< ?xml version="1.0"?>< !DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">< cross-domain-policy>< site-control permitted-cross-domain-policies="master-only"/>< allow-access-from domain="*" to-ports="*" />< /cross-domain-policy>

У меня есть переменная со строковым типом, которая равна этой политике + String.fromCharCode (0).

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 10 марта 2012

Проверьте настройки маршрутизатора и убедитесь, что локальный компьютер, на котором запущен сервер, имеет достаточные права доступа к сети, чтобы в первую очередь установить соединение. Самый простой способ сделать это - найти настройку DMZ в конфигурации вашего маршрутизатора и добавить IP-адрес вашего сервера. Я не уверен, что это проблема, потому что вы заявили, что вы все еще получаете запрос политики через сокет ... который озадачивает. Однако в настоящее время с подробностями, которые вы предоставили, все, что я могу сделать, - это сделать обоснованное предположение, и на данный момент DMZ звучит как наиболее вероятная причина.

Также обратите внимание, что в вашей доменной политике вы действительно не должны (в рабочем коде) разрешать ЛЮБОМУ клиенту соединяться через ЛЮБОЙ сокет. Это побеждает всю цель модели безопасности. В любом случае, это лучший ответ, который я могу дать с текущей информацией. Я также рекомендую прочитать эту статью Adobe о работе с ServerSocket и клиентскими подключениями.

http://www.adobe.com/devnet/air/flex/quickstart/articles/communicating_with_sockets.html#articlecontentAdobe_numberedheader_3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...