Поиск в протоколе ADC |
Здравствуйте, гость ( Вход | Регистрация )
Поиск в протоколе ADC |
29.6.2012, 0:23
Сообщение
#1
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 29.6.2012 Пользователь №: 10 678 Спасибо сказали: 0 раз |
http://mydc.ru/topic2033s20.html
Цитата На пассивный поиск каждый клиент в ответ может отсылать до пяти результатов, на активный - до десяти. При пассивном поиске команда отсылается клиенту через хаб, при активном - напрямую. Пассивность клиента определяется из параметра SU команды INF. Возможные варианты режима пользователя, определяемого по INF: 1. Хаб режет SU в INF команде и режим пользователя не определен 2. Режим определен, пользователь может принимать только UDP пакеты 3. Режим определен, пользователь может принимать только TCP пакеты 4. Режим определен, пользователь может принимать и TCP и UDP пакеты Возможные варианты поискового запроса: 1. Активный, рассылаемый всем 2. Пассивный, рассылаемый поддерживающим TCP или NATT Согласно фразе: Цитата Пассивность клиента определяется из параметра SU команды INF. которая мной не была найдена в официальной документации к протоколу, возникает неоднозначность в поведении клиентов. Скажите пожалуйста, как поведет себя Strong и FlyLink в каждом из случаев: 1. - 1. 1. - 2. 2. - 1. 2. - 2. 3. - 1. 3. - 2. 4. - 1. 4. - 2. Точнее сказать, как будет слать ответ, по TCP через хаб или напрямую по UDP? Спасибо |
|
|
29.6.2012, 9:43
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Видимо не совсем корректно написано.
Цитата Пассивность клиента определяется из параметра SU команды INF Наверное лучше было написать так: "Активность клиента определяется из параметра SU команды INF" или так: "Пассивность клиента определяется отсутствием в параметре SU команды INF характеристик активного клиента (TCP4, UDP4, TCP6, UDP6)". Функции определения режима из исходного кода flylink Код bool Identity::isTcpActive(const Client* c) const { if (c != NULL && user == ClientManager::getInstance()->getMe()) { return c->isActive(); // userlist should display our real mode } else { return (!user->isSet(User::NMDC)) ? !getIp().empty() && supports(AdcHub::TCP4_FEATURE) : !user->isSet(User::PASSIVE); } } bool Identity::isUdpActive() const { if (getIp().empty() || getUdpPort().empty()) return false; return (!user->isSet(User::NMDC)) ? supports(AdcHub::UDP4_FEATURE) : !user->isSet(User::PASSIVE); } bool Identity::supports(const string& name) const { string su = get("SU"); StringTokenizer<string> st(su, ','); for (StringIterC i = st.getTokens().cbegin(); i != st.getTokens().cend(); ++i) { if (*i == name) return true; } return false; } |
|
|
29.6.2012, 15:51
Сообщение
#3
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 29.6.2012 Пользователь №: 10 678 Спасибо сказали: 0 раз |
Не понятно поведение клиента при получении поискового запроса и необходимости отвечать на него, так сказать в "экзотических случаях".
Не могли бы вы написать для каждой комбинации как флайлинк будет слать ответ, по TCP через хаб, или по UDP напрямую Возможные варианты режима пользователя, определяемого по INF, на поисковый запрос которого необходимо ответить: 1. Хаб режет SU в INF команде и режим пользователя не определен 2. Пользователя, от которого пришел поисковый запрос, вообще нет на хабе и соответственно его режим не определен 3. Режим определен, пользователь может принимать только UDP пакеты 4. Режим определен, пользователь может принимать только TCP пакеты 5. Режим определен, пользователь может принимать и TCP и UDP пакеты Возможные варианты поискового запроса: 1. Активный, рассылаемый всем 2. Пассивный, рассылаемый поддерживающим TCP или NATT Всего 10 комбинаций: 1. - 1. 1. - 2. 2. - 1. 2. - 2. 3. - 1. 3. - 2. 4. - 1. 4. - 2. 5. - 1. 5. - 2. Подпишите их пожалуйста, как поведет себя в таких случаях флайлинк |
|
|
4.7.2012, 0:14
Сообщение
#4
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 29.6.2012 Пользователь №: 10 678 Спасибо сказали: 0 раз |
Я так понимаю согласно протоколу поведение DC клиентов в таких случаях не определено?
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 1:01 |