lyzard 0 Posted February 9, 2012 Share Posted February 9, 2012 Вот тут очень не хватает бегущих процентов.. ну или хотя-бы шагов. Иногда смотришь на этот бегающий по логотипу огонек, как баран, и не понимаешь, то-ли идет процесс, но медлено; а то-ли клиент повис и зря глаза мазолишь.. З.Ы. Подключение... 20% Quote Link to comment Share on other sites More sharing options...
Darkerys 0 Posted February 9, 2012 Share Posted February 9, 2012 Ну не смотри :lol: Quote Link to comment Share on other sites More sharing options...
Quote 31 Posted February 9, 2012 Share Posted February 9, 2012 Вот тут очень не хватает бегущих процентов.. ну или хотя-бы шагов. Иногда смотришь на этот бегающий по логотипу огонек, как баран, и не понимаешь, то-ли идет процесс, но медлено; а то-ли клиент повис и зря глаза мазолишь.. З.Ы. Подключение... 20% Этот "огонек", если не ошибаюсь, эквивалентен "жду ответа от сервера" (клиент послал запрос, а вот сервер слоупочит... и молчит, как партизан :) ). Так что такой "статус бар" состояния загрузки вряд ли возможно сделать... Но я, конечно, могу и ошибаться на этот счет... Quote Link to comment Share on other sites More sharing options...
Selia 17 Posted February 9, 2012 Share Posted February 9, 2012 можно, я почти уверен. Правда, не в процентах лучше. Сделать какие-то отметки, каждая из которых будет соответствовать определенному проишествию. Ведь во время подключения клиент отправляет несколько запросов и получает на них ответы. Если посчитать какие-то ключевые запросы-ответы и привести отметки им в соответствие, то будет понятно хоть что-то. А так этот огонёк всегда бегает. Даже если обмен данными не происходит Quote Link to comment Share on other sites More sharing options...
Quote 31 Posted February 9, 2012 Share Posted February 9, 2012 Сделать какие-то отметки, каждая из которых будет соответствовать определенному проишествию. Ведь во время подключения клиент отправляет несколько запросов и получает на них ответы. Если посчитать какие-то ключевые запросы-ответы и привести отметки им в соответствие, то будет понятно хоть что-то. По-моему, тут не все так просто, как кажется... Вначале было слово происходит тройное "рукопожатие", а уж потом обмен пакетиками... Процесс начала сеанса TCP - обозначаемое как "рукопожатие" (handshake), состоит из 3 шагов. 1. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN. Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента. В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED. В случае неудачи сервер посылает клиенту сегмент с флагом RST. 2. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK. Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED. Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться. Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново. 3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED. В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED. Quote Link to comment Share on other sites More sharing options...
Selia 17 Posted February 9, 2012 Share Posted February 9, 2012 события для первых 3 отметок уже найдены)) дальше же тоже весьма разделимые этапы происходят. Выбрать базовые, и из них исходить. P.s. Я не говорил что здесь что-то просто Quote Link to comment Share on other sites More sharing options...
Quote 31 Posted February 9, 2012 Share Posted February 9, 2012 события для первых 3 отметок уже найдены)) дальше же тоже весьма разделимые этапы происходят. Выбрать базовые, и из них исходить. Угу. И будет у нас прогресс бар 0% -> 33% -> -> -> -> (долгая пауза) -> 100%, и коннект. Я к тому клоню, что именно установка соединения занимает большую часть времени... А обмен пакетами после успешного установления tcp-соединения ("запросы") происходит практически моментально (иначе вместо игры мы бы постоянно смотрели слайд-шоу с жуткими лагами). Quote Link to comment Share on other sites More sharing options...
Selia 17 Posted February 9, 2012 Share Posted February 9, 2012 Угу. И будет у нас прогресс бар 0% -> 33% -> -> -> -> (долгая пауза) -> 100%, и коннект. я сразу сказал что не проценты, а отметки.И где я говорил о пакетах TCP? Я не предлагаю считать пакеты. Я предлогаю считать этапы. Одним из них может быть этот самый обмен пакетами, что происходит при подключении в последний момент. Quote Link to comment Share on other sites More sharing options...
Quote 31 Posted February 10, 2012 Share Posted February 10, 2012 я сразу сказал что не проценты, а отметки.А разница? :D Я не предлагаю считать пакеты. Я предлогаю считать этапы. Одним из них может быть этот самый обмен пакетами, что происходит при подключении в последний момент.Эти "этапы" после подключения будут сменяться один другим очень быстро - клиент в это время уже получает данные от сервера, и может (да и должен) рисовать нам "картинку", а не какой-то там прогресс бар. Посмотри на весь процесс загрузки с помощью сниффера, если играешь с ПК (у меня сейчас такой возможности нет)... Quote Link to comment Share on other sites More sharing options...
Selia 17 Posted February 10, 2012 Share Posted February 10, 2012 разница в том, что 3 из 10 отметок не обязаны быть 30% я видел эту загрузку. Происходит куча низкоскоростных обменов, потом всплеск и игра. Вот то, что до всплеска можно и показать отметками Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.