С Новым годом! Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20

Error #2031: Ошибка сокета

09.08.2013, 10:04. Показов 6205. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем.
Пытаюсь работать с сокетами в AS3. Проблема коротко: есть такой код на AS3
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.net.Socket;
    import flash.utils.ByteArray;
    
    
    
    /**
     * ...
     * @author andrew
     */
    public class Main extends Sprite 
    {
        private var varx = 0;
        private var vary=1;
        private var varz=2;
        private var soket:Socket;
        private var byte:ByteArray;
        public function Main():void 
        {
            soket = new Socket();
            soket.addEventListener(Event.CONNECT, connect);
            soket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soket.connect("127.0.0.1", 1025);
            
            byte = new ByteArray();
            byte.writeByte(varx);
            byte.writeByte(vary);
            byte.writeByte(varz);
            trace(byte[0]);
            trace(byte[1]);
            trace(byte[2]);
        }
        public function connect(e:Event):void {
            soket.writeBytes(byte, 0, 3);
            soket.flush();
            soket.addEventListener(ProgressEvent.SOCKET_DATA, data);
        }
        public function data(e:ProgressEvent)
        {
            soket.readBytes(byte, 0, 3);
            soket.flush();
            trace(byte[0]);
            trace(byte[1]);
            trace(byte[2]);
        }
        private function ioErrorHandler(event:IOErrorEvent):void {
        trace("ioErrorHandler: " + event);
    }
        
    }
    
}
Тут происходит подключение сокета к серверу на C++ ,вот сам код сервера
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <cstdlib>
#include <iostream>
#include <winsock2.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char buff[30];
    WSAStartup(0x202,((WSADATA*)&buff[0]));
    cout << "Create socket...\n";
    SOCKET my_sok = socket(AF_INET, SOCK_STREAM,0);
    cout << "Bind socket...\n";
    sockaddr_in local_addr;
    local_addr.sin_family = AF_INET;
    local_addr.sin_port = htons(1025);
    local_addr.sin_addr.s_addr = 0;
    bind(my_sok,(sockaddr*)&local_addr, sizeof(local_addr));
    cout << "Listen socket...";
    listen(my_sok,5);
    
    sockaddr_in client_addr;
    int size_client = sizeof(client_addr); 
    
    SOCKET client_sok;
    char mess[3] = {'\0','\0','\0'};
    
    while(mess != "ext")
    {
            if((client_sok = accept(my_sok,(sockaddr*)&client_addr,&size_client)))
            {
            }
            else
            {
                recv(client_sok,mess,sizeof(mess),0);
                cout << mess << "\n";
                mess[0] += 1;
                send(client_sok, mess, sizeof(mess),0);
            }
    }
    closesocket(my_sok);
    WSACleanup();
    system("PAUSE");
    return EXIT_SUCCESS;
}
На сервер посылаются три байта, на сервере первый байт каждый раз инкрементируется, все отсылается обратно.
Проблема в том, что когда я нажимаю кнопку выполнить в FlashDevelop, открывается окно флэш-плеера, а в панели Output я вижу такое:
0
1
2
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2031: Ошибка сокета. URL: 127.0.0.1"]
И потом, через некоторое время работы приложения туда добавляется следующая строка
Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: file:///C|/as3/soket/bin/soket.swf не может загрузить данные из 127.0.0.1:1025.
at Main()[C:\as3\soket\src\Main.as:25]
Подскажите пожалуйста, что мне нужно предпринять, чтобы устранить эти ошибки?
В интернете искал, нашел что-то про "изолированную среду", но не знаю как ее настроить во FlashDevelop4.
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2013, 10:04
Ответы с готовыми решениями:

Error: Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)
Можно ли как-то обойти эту ошибку, и отправить пакет на &quot;занятый&quot; адрес/порт

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет...

Копирование сокета или передача сокета в функцию
Добрый день всем, столкнулся с тем что не могу скопировать сокет. boost::asio::ip::tcp::socket socket(io_service); ...

15
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
09.08.2013, 10:35
Ошибки, securityError, там же есть и примеры.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
09.08.2013, 11:31  [ТС]
Про ошибку
Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: file:///C|/as3/soket/bin/soket.swf не может загрузить данные из 127.0.0.1:1025.
at Main()[C:\as3\soket\src\Main.as:25]
Я понял, что надо что-то сделать с изолированной средой безопасности, только как это сделать в FlashDevelop я не знаю.
А про первую ошибку я ничего дельного не нашел... Или там проблема тоже решается изолированной средой безопасности? Если да, то подскажите пожалуйста, как ее(среду безопасности) изменить, для возможности взаимодействия моего приложения с сетью?
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
09.08.2013, 12:56
Так ведь IOError:
Исключение IOError выбрасывается при ошибках ввода-вывода. Например, исключение IOError выдается, если предпринята операция чтения/записи для сокета, который не подключен или отключился.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
09.08.2013, 13:32  [ТС]
Я Вас не понимаю. Или Вы намекаете на то, что сокет вообще не подключен? Но, вот же код для подключения
ActionScript 3
1
2
3
4
soket = new Socket();
            soket.addEventListener(Event.CONNECT, connect);
            soket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soket.connect("192.168.1.18", 1025);
Я сейчас его немного изменил, с Денвером химичил, но не получилось(
Цитата Сообщение от TanaTiX Посмотреть сообщение
Исключение IOError выбрасывается при ошибках ввода-вывода. Например, исключение IOError выдается, если предпринята операция чтения/записи для сокета, который не подключен или отключился.
А как может быть предпринята эта операция, если сокет еще только подключается? Или сокет подключается к "несуществующему" IP, флэш-плеер пропускает это мимо глаз(ушей или что у него там) и выдает мне эту ошибку, уже когда я пытаюсь слать по этому сокету данные вот таким кодом?
ActionScript 3
1
2
3
4
5
public function connect(e:Event):void {
            soket.writeBytes(byte, 0, 3);
            soket.flush();
            soket.addEventListener(ProgressEvent.SOCKET_DATA, data);
        }
Добавлено через 11 минут
PS И вот здесь же сказано, что метод connect() вызывает событие ioError:IOErrorEvent. Метод connect() же не может производить операции чтения/записи в сокет?
connect
() метод
События
connect:Event — Отправляется после установления сетевого подключения.

ioError:IOErrorEvent — Отправляется, если узел указан, но возникает ошибка ввода-вывода, вызывающая сбой подключения.

securityError:SecurityErrorEvent — Отправляется, если вызов Socket.connect() пытается установить подключение к серверу, на котором нет файла политик для сокетов, либо к серверу, на котором файл политик для сокетов не предоставляет вызывающему узлу доступ к указанному порту. Дополнительные сведения о файлах политик см. в главе «Элементы управления веб-сайтом (файлы политики)» в Руководстве разработчика по ActionScript 3.0, а также в разделе центра разработчиков Flash Player Developer Center: Безопасность.
Выдает
IOError — Сбой подключения, так как не был указан узел.

SecurityError — Эта ошибка возникает в содержимом SWF по следующим причинам:

Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Можно устранить это ограничение, если переклассифицировать файл как локальный с сетевым подключением или доверенный.
Не допускается указывать номер порта сокета выше 65535.
На HTML-странице с SWF-cодержимым для параметра allowNetworking тегов object и embed устанавливается значение none.
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
09.08.2013, 13:54
Почитайте, про crossdomain особенно.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
09.08.2013, 15:12  [ТС]
Про это все я читал раньше, создал файл crossdomain.xml такого содержания и запихал его на диск C(Ну, там же сказано "в корневой каталог сервера"), но пользы это не принесло, сейчас качаю Adobe Flash Professional CS5.
XML
1
2
3
4
5
6
<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<!-- Policy file for xmlsocket://socks.mysite.com --> 
<cross-domain-policy>  
    <allow-access-from domain="*" to-ports="*" /> 
</cross-domain-policy>
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
09.08.2013, 16:17
Цитата Сообщение от Delta36652 Посмотреть сообщение
Ну, там же сказано "в корневой каталог сервера"
Какое отношение диск С имеет к серверу?
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
09.08.2013, 17:44  [ТС]
Ну я так понимаю, что мой комп т.е. диск С и есть сервер или я не прав? По крайней мере, когда я изучал сокеты на С++ никакого сервера не требовалось, просто запускал файл сервера у себя на компе,а потом файл клиента и все было ок. А тут что-ли по-другому?
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
09.08.2013, 19:31
Цитата Сообщение от Delta36652 Посмотреть сообщение
или я не прав?
Не прав.
Читаем
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
10.08.2013, 06:29  [ТС]
Спасибо за ссыль.
У меня каким-то чудом все заработало. Оказывается была ошибка в коде сервера.
Ладно, а как в actionscript3 дело обстоит с UDP сокетами?
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
10.08.2013, 14:35
Наверное вам необходимо прочитать про это
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
10.08.2013, 17:47  [ТС]
Я раньше про все это уже читал, даже сделать пытался. Но что-то не захотело ничего работать, проблемы были с AIR Debug Launcher. Вообще, я бы хотел видеть пример приложения с использованием DatagramSocket, т.е. все, от типа проекта до работы самого приложения.
PS На C++ UDP сервер и клиент реализовывал ранее, все работает.
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
10.08.2013, 18:27
Цитата Сообщение от Delta36652 Посмотреть сообщение
я бы хотел видеть пример приложения с использованием DatagramSocket
Может кто и поможет примером... Я ранее работал только с обычным Socket-ом и XMLSocket-ом (по сути тоже самое). DatagramSocket использовать пока не доводилось, хотя не думаю, что в реализации клиента есть что-то сверхъестественное.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
11.08.2013, 17:11  [ТС]
Сверхъестественное? Да, может быть и сверхъестественное. Когда, указываешь в application.xml(файлик такой, где путь к air дебагеру прописан) нормальный путь, а он в ответ: Неверный путь и все в таком духе)) А вообще мне кажется Вы один на этом форуме сидите(я имею ввиду этот раздел).
0
Модератор
 Аватар для TanaTiX
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
11.08.2013, 18:12
Delta36652, исторически так сложилось, что мне больше нравится Zinc (как возможная альтернатива Air-у), но. вероятно, скоро также придется заняться подобным вопросом. Это я к тому, что на данный момент врядли смогу квалифицированно помочь.

Не по теме:

А народ здесь есть, и не только спрашивающий, но и советующий.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.08.2013, 18:12
Помогаю со студенческими работами здесь

Ошибка сокета
Вечер добрый. Столкнулся с такой проблемой. И cуть ее в следующем.. Для отправки сообщения на емайл, использую этот код: ...

ошибка сокета 10060
помогите, писал простую программу суть в том, что я пытался применить компонент TserverSocket и ClientSocket, так вот в чем проблема: при...

Ошибка сокета (10053)
В разрабатываемой программе, связь производится через синхронные сокеты по протоколу TCP. Программа устанавливает связь с другими...

Ошибка при создании сокета
Здравствуйте, при создании сокета происходит ошибка #include sockets.hpp socket(AF_INET, SOCK_DGRAM, 0) на windows не...

Чат, ошибка сокета 10053
Всем привет, в общем: пишу чат, всё работает нормально, вот только есть один большой минус, если кто то из клиентов крашится или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru