Jump to content

Подключение...


lyzard

Recommended Posts

Вот тут очень не хватает бегущих процентов..  ну или хотя-бы шагов. Иногда смотришь на этот бегающий по логотипу огонек, как баран, и не понимаешь, то-ли идет процесс, но медлено; а то-ли клиент повис и зря глаза мазолишь..

З.Ы. Подключение... 20%

Link to comment
Share on other sites

Вот тут очень не хватает бегущих процентов..  ну или хотя-бы шагов. Иногда смотришь на этот бегающий по логотипу огонек, как баран, и не понимаешь, то-ли идет процесс, но медлено; а то-ли клиент повис и зря глаза мазолишь..

З.Ы. Подключение... 20%

Этот "огонек", если не ошибаюсь, эквивалентен "жду ответа от сервера" (клиент послал запрос, а вот сервер слоупочит... и молчит, как партизан :) ). Так что такой "статус бар" состояния загрузки вряд ли возможно сделать... Но я, конечно, могу и ошибаться на этот счет...

Link to comment
Share on other sites

можно, я почти уверен. Правда, не в процентах лучше.

Сделать какие-то отметки, каждая из которых будет соответствовать определенному проишествию.

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

 

А так этот огонёк всегда бегает. Даже если обмен данными не происходит

Link to comment
Share on other sites

Сделать какие-то отметки, каждая из которых будет соответствовать определенному проишествию.

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

По-моему, тут не все так просто, как кажется... Вначале было слово происходит тройное "рукопожатие", а уж потом обмен пакетиками...

 

Процесс начала сеанса TCP - обозначаемое как "рукопожатие" (handshake), состоит из 3 шагов.

 

1. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN.

Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента.

В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED.

В случае неудачи сервер посылает клиенту сегмент с флагом RST.

 

2. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK.

Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED.

Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться.

Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.

 

3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED.

В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED.

Link to comment
Share on other sites

события для первых 3 отметок уже найдены))

 

дальше же тоже весьма разделимые этапы происходят. Выбрать базовые, и из них исходить.

 

P.s. Я не говорил что здесь что-то просто

Link to comment
Share on other sites

события для первых 3 отметок уже найдены))

 

дальше же тоже весьма разделимые этапы происходят. Выбрать базовые, и из них исходить.

Угу. И будет у нас прогресс бар 0% -> 33% -> -> -> -> (долгая пауза) -> 100%, и коннект. Я к тому клоню, что именно установка соединения занимает большую часть времени... А обмен пакетами после успешного установления tcp-соединения ("запросы") происходит практически моментально (иначе вместо игры мы бы постоянно смотрели слайд-шоу с жуткими лагами).

Link to comment
Share on other sites

Угу. И будет у нас прогресс бар 0% -> 33% -> -> -> -> (долгая пауза) -> 100%, и коннект.

 

я сразу сказал что не проценты, а отметки.

И где я говорил о пакетах TCP?

Я не предлагаю считать пакеты. Я предлогаю считать этапы. Одним из них может быть этот самый обмен пакетами, что происходит при подключении в последний момент.

Link to comment
Share on other sites

я сразу сказал что не проценты, а отметки.

А разница? :D

 

Я не предлагаю считать пакеты. Я предлогаю считать этапы. Одним из них может быть этот самый обмен пакетами, что происходит при подключении в последний момент.

Эти "этапы" после подключения будут сменяться один другим очень быстро - клиент в это время уже получает данные от сервера, и может (да и должен) рисовать нам "картинку", а не какой-то там прогресс бар. Посмотри на весь процесс загрузки с помощью сниффера, если играешь с ПК (у меня сейчас такой возможности нет)...

 

 

Link to comment
Share on other sites

разница в том, что 3 из 10 отметок не обязаны быть 30%

 

я видел эту загрузку.

Происходит куча низкоскоростных обменов, потом всплеск и игра.

Вот то, что до всплеска можно и показать отметками

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...