![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2008
Сообщений: 84
|
Цитата:
Цитата:
java.net.ServerSocket <-> flash.net.Socket И там и там строчек кода - кот наплакал. player какой-то из последних 10.3.xxxxx Цитата:
Насчёт 11 плейера... надо глянуть, как раз релиз скоро. Добавлено через 7 минут конечно есть решение: дробить данные на мелкие куски, передавать эти крохи. На стороне флеша, собрав очередной кусочек, отложить его в сторону и попросить у сервера новую порцию... это не тормозит но работает гоораааздо дольше. |
|
|||||
|
Скиньте минимальный код примера (можно залить куда нибудь). Просто мне не воспроизвести. Насчет
Цитата:
Цитата:
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 84
|
Цитата:
|
|
|||||
|
Я прошу прощения за назойливость, но что "это"? Если мы говорим о TCP-соединении, то именно так оно и работает. То, что не помещается в один пакет, делится на несколько пакетов поменьше, последний из которых получает "приписку" (флаг PSH), которая указывает на конец последовательности.
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 05.10.2011 в 00:18. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 84
|
Цитата:
Вот если на пальцах. 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 конечно же такой проблемы нет. |
|
|||||
|
Что-то я не уловил разницу.
Цитата:
Цитата:
Ты по прогрессу данные из сокета считываешь или нет?
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 84
|
мда... ладно - проехали.
|
|
|||||
|
Цитата:
Добавлено через 5 минут Правда...
__________________
http://www.chessmax.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|