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

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

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

Регистрация: Jan 2008
Сообщений: 84
Цитата:
да вроде сами разработчики и профессионалы пишут, что флеш-технология не сильно заточена для работы с сокет-серверами. по той же причине и Стив Джобс обстебывал адоб на тему того почему до сих пор эппл не поддерживает флеш. То адоб обещал поработать над безопасностью, в итоге не получилось, но все обещали, то адоб обещал поработать над производительностью, в итоге не шибко получилось, но все обещали...
Да они на моей памяти только и делают что обещают.

Цитата:
А в каком энваронменте тестите? Хочу повторить.
Да обычная винда7.
java.net.ServerSocket <-> flash.net.Socket
И там и там строчек кода - кот наплакал.
player какой-то из последних 10.3.xxxxx

Цитата:
Судя по моему представлению и тому что сказал dimarik, общее количество данных не имеет значения, имеет значение порционность данных (это как раз относится к MTU, ну нет смысла придумывать пакет в 64 кб, все равно ни одна сеть столько за раз не отдаст).
Насчет тредов - попробуй под 11 плеером, были анонсы выноса работы с сетью в отдельный поток.
Именно так, порционность, её можно регулироват в пределах mtu. Только вот пока (я повторяюсь) флеш свои порции не захавает, сожрёт Все доступные ресурсы.
Насчёт 11 плейера... надо глянуть, как раз релиз скоро.

Добавлено через 7 минут
конечно есть решение: дробить данные на мелкие куски, передавать эти крохи. На стороне флеша, собрав очередной кусочек, отложить его в сторону и попросить у сервера новую порцию... это не тормозит но работает гоораааздо дольше.

Старый 04.10.2011, 23:42
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 12  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Blood, у тя Destiny тормозит из-за сокета. Инфа 100%
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Скиньте минимальный код примера (можно залить куда нибудь). Просто мне не воспроизвести. Насчет
Цитата:
На стороне флеша, собрав очередной кусочек, отложить его в сторону и попросить у сервера новую порцию...
Зачем чего-то просить? Просто раздели данные на пакеты по N байт и посылай такими кусками. А уже сам формат пакетов должен показывать, к чему они относятся (к тем 64 кб или уже к каким-то другим).

Цитата:
Насчёт 11 плейера... надо глянуть, как раз релиз скоро.
Релиз уже произошел =)
__________________
...вселенская грусть

Старый 05.10.2011, 00:08
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 14  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
Цитата:
Зачем чего-то просить? Просто раздели данные на пакеты по N байт и посылай такими кусками. А уже сам формат пакетов должен показывать, к чему они относятся (к тем 64 кб или уже к каким-то другим).
НЕТ. неверно. это НЕ Работает так как ты себе представляешь.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я прошу прощения за назойливость, но что "это"? Если мы говорим о TCP-соединении, то именно так оно и работает. То, что не помещается в один пакет, делится на несколько пакетов поменьше, последний из которых получает "приписку" (флаг PSH), которая указывает на конец последовательности.
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 05.10.2011 в 00:18.
Старый 05.10.2011, 00:18
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 16  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Все тихо вспоминают ISO OSI и призрачность MTU для вышестоящих уровней.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 05.10.2011, 00:37
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 17  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
Цитата:
Я прошу прощения за назойливость, но что "это"? Если мы говорим о TCP-соединении, то именно так оно и работает. То, что не помещается в один пакет, делится на несколько пакетов поменьше, последний из которых получает "приписку" (флаг PSH), которая указывает на конец последовательности.
=) это никоем образом не относится к описываемой проблеме.
Вот если на пальцах.
1) есть N байт (допустим 65кб) которые нам надо переслать
2) на сервере указываем размер отсылаемого буфера в 1000 байт.
3) пишем наш пакет данных в сокет и отправляем. write() && flush(); Понятное дело что сервак начнёт слать пакет порциями по 1000байт.

4) во флешке отрабатывает ProgressEvent, на сокет появляются данные - bytesAvaiable. Причём не факт что там будет 1000байт, там будет точно не больше 1000. Данные эти обязательно нужно считать, иначе сокет засрётся.
5) ProgressEvent отработает ровно такое кол-во раз, сколько нужно для пересылки наших 65кб. В идеале 65kb/1000b раз.
6) Флеш пока не получит по кусочкам все эти 65кб, будет тормозить (забивать CPU процедурой заполнения сокета принимаемыми данными)

Соответственно, если мы пошлём 1кб, то ничего не заметим, всё пройдёт быстро и безболезненно, если 65 - то всё повиснет. Значит надо посылать по 1кб 65 раз =) тобишь 65 раз сделать socket.wirte() и socket.flush(); причём после подтверждения от флеша - мол готов к новой порции.
Это реально работает и не тормозит, но пересылка данных занимает много времени.

Последнее - это лирика на самом деле.

В том же c# или java конечно же такой проблемы нет.

Старый 05.10.2011, 01:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 18  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Что-то я не уловил разницу.
Цитата:
3) пишем наш пакет данных в сокет и отправляем. write() && flush(); Понятное дело что сервак начнёт слать пакет порциями по 1000байт.
Цитата:
если 65 - то всё повиснет. Значит надо посылать по 1кб 65 раз =)
Единственное что меняется в работе клиента - это отсылка запросов на новую порцию данных. 65 обращений по 1 байту (условно) вряд ли сильно повлияют на время передачи. В работе сервера вообще ничего не меняется. Так почему же пропадают тормоза?

Ты по прогрессу данные из сокета считываешь или нет?
__________________
...вселенская грусть

Старый 05.10.2011, 11:53
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 19  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
мда... ладно - проехали.

Старый 05.10.2011, 11:55
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 20  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
Релиз уже произошел =)
Да ладно? Правда?

Добавлено через 5 минут
Правда...
__________________
http://www.chessmax.ru

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

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

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


 


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


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