Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.04.2013, 05:55
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 11  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
О событии CLOSE - имел в виду вот так:
Код AS3:
if(sender && sender.connected)
{
    sender.addEventListener(Event.CLOSE, OnSenderClose);
    sender.close();
}
...
private function OnSenderClose(e:Event):void 
{
     disposeCurrentSocket();
     newSenderSocket();
}
А то получается что все слушатели событий удаляются до отключения активного сокета - может туда какая ошибка приходит...

Цитата:
try-catch ничего не показал в трейсе.
trace - не лучший способ отладки, стоит воспользоваться дебагером

P.S.
Еще буфер нужно очищать, как советует chamele0n

Старый 19.04.2013, 07:41
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 12  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
trace - не лучший способ отладки, стоит воспользоваться дебагером
Чем в данном случае дебагер лучше трейса?

Старый 19.04.2013, 13:41
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 13  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Код AS3:
try
{
   socket.connect();
}
catch(e0:IOError)
{
}
catch(e1:SecurityError)
{
}
Мне интересно, что вы там собираетесь ловить catch'ем. Там событие ошибки возникает, а не ошибка выкидывается.
__________________
мой пустой блог

Старый 19.04.2013, 15:02
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 14  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
2 C4Grey Как вы считаете, OnSenderClose в вашем коде когда нибудь сработает?
Писал ведь уже, что сокет отключается вручную, перед полным его диспозом. И чистка, если flush() подразумевается, тоже делается. Разве что проверю еще буфер, перед удалением сокета.
2 iflamberg Вы абсолютно правы.
Повторюсь, проблема возникает, когда какой либо из коннектов (профилей) сгенерит событие ошибки Error #2031: Socket Error, после этого все следующие коннекты генерят эту же ошибку. А вот когда луна в нужной четверти и связь исправна, то даже сокет обновлять нет необходимости. Единственный справляется отменно.

Старый 19.04.2013, 15:09
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 15  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Чем в данном случае дебагер лучше трейса?
Тем, что можно посмотреть состояние экземпляра класса Socket...для примера, вот так:

Впрочем, сам с удовольствием использую Flash Console наравне с дебагером - любое средство пригодится в определенных условиях.

Цитата:
Сообщение от iflamberg Посмотреть сообщение
Мне интересно, что вы там собираетесь ловить catch'ем. Там событие ошибки возникает, а не ошибка выкидывается.
Ну а вдруг

Добавлено через 29 минут
Цитата:
Сообщение от MOHCTEP Посмотреть сообщение
2 C4Grey Как вы считаете, OnSenderClose в вашем коде когда нибудь сработает?
Писал ведь уже, что сокет отключается вручную, перед полным его диспозом. И чистка, если flush() подразумевается, тоже делается. Разве что проверю еще буфер, перед удалением сокета.
извини, забыл что это событие вызвается только при отключении от сервера. В одной игршке делал переподключение к серверу - там сокеты были нужны только во время самого геймплея, клиенты часто отключались-подключались, и таких пробелм не видел, потому и советовал максимально обвешаться проверками, защитный рефлекс при столкновении с неведомым .
P.S.
Возможно, это еще один глупый совет, но попробуй подключится по таймеру через секунд 5 - на одном форуме встречал топик с похожей проблемой.


Последний раз редактировалось C4Grey; 19.04.2013 в 15:58.
Старый 19.04.2013, 22:04
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 16  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
C4Grey Спасибо! Я сейчас уже вполне в состоянии воспринимать любые советы.
Никак не поддается крепость вражья!))

Добавлено через 25 часов 6 минут
Спасибо всем! Проблема ликвидирована.

Старый 22.04.2013, 15:59
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 17  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
Напиши, пожалуйста, в чем она заключалась, если не сложно.

Старый 22.04.2013, 20:29
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 18  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Почему-то сокет слал событие Error #2031 дважды, с промежутком в несколько миллисекунд. По первому событию переключался профиль, ловил дубль, снова переключался и софтинка сходила с ума. ))
Эти события тащат с собою св-во text, с описанием ошибки и текущим хостом. Вот по этому самому хосту я и отфильтровал повторы в обработчике и шарманка поехала.

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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