Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Протокол Mail.Ru агента   Найти похожие ветки 

 
Vulix ©   (2006-11-09 13:28) [0]

Кто-нибудь копал или может небольшие исходники? Знаю, что есть описание протокола...но там такое описание, что толку не так много, как хотелось бы.
Конкретно интересует более подробный разбор формирования пакета.


 
Орион ©   (2006-11-09 13:51) [1]

> но там такое описание, что толку не так много

нормальное описание. Если не разберешся - это не тебе.
Компонент на форму кинуть хотел и замена агенту готова?


 
Vulix ©   (2006-11-10 07:28) [2]

Орион, умничать не надо только, ага?
Или может ты с пеленок обладал багажом знаний?
По твоему, если человек что-то не понимает, то он и не способен понять? Я попросил помощи, если кроме хвастовства тебе нечего сказать, то лучше промолчи. И вообще, не будь таким нервным. Этот форум для помощи людям.

Разобраться то я разберусь, но я надеялся, что есть добрые люди, которые могут помочь мне ускорить этот процесс. Что же касается готового компонента, то по себе судить не надо. Я его нигде не просил и вообще люблю писать вещи своими мозгами.

Конкретно меня интересует следующее, есть заголовок пакета

Заголовок пакета
{
   u_long magic;
   u_long proto;
   u_long seq;
   u_long msg;
   u_long dlen;
   u_long from;
   u_long fromport;
   u_char reserved[16];
}

Меня интересует, что такое seq, остальное понятно. Еще такой вопрос, зачем указывать с какого IP:порт идет пакет?
В описании написано

Каждая команда или ответ на нее начинаются с заголовка. Поля указываемые в заголовке:
1. волшебный ключ, указывающий на то, что это действительно пакет MMP - версия MMP, поддерживаемая отправителем пакета (текущая версия - 1.7)
это понятно, правда как то они объединили неявно два пункта в один
magic+proto
2. номер отправляемой команды в текущем соединении. Ответ на команду должен иметь тот же номер, что и сама команда.
это, как я понял, seq, т.е. это просто порядковое число? Тогда вопрос. Этот номер каждый раз надо увеличивать при любой команде на сервер?Даже просто при пинге?
3. тип пакета, номер команды и/или ответа
это, как я понимаю,msg. Такой вопрос. Как я понял, пакет с сервера содержит номер команды в этом поле. Тогда что хранит поле seq в пакете с сервера? И что значит фраза "номер команды и ответа", они как-то объединяются? Логическая операция?
4. длина данных пакета (без учета заголовка). При обработке посылаемых сервером данных длина пакета должна иметь приоритет перед списком его параметров, т. к. в следующих версиях протокола могут появляться новые параметры и все они будут дописываться в конец пакета.
это понятно
5. порт и ip (в inet_aton() формате) с которых установлено соединение
это понятно


 
Anatoly Podgoretsky ©   (2006-11-10 09:03) [3]

> Vulix  (10.11.2006 07:28:02)  [2]

С претензиями по поводу ответов в конференцию Прочее, раньше она называлась потрепаться, название было более правильное.

Умничать термин не технический и как правило применяемый неправильно, обычное применение такое - ты не умничай, ты код давай. Правильное применение - стань дураком (не умничай), а то я тебя не понимаю. Но я посмотрю его ветку.

> По твоему, если человек что-то не понимает, то он и не способен понять

Ты уверен за его мнение? Может ты свое мнение приписываешь ему. Узнать об этом можешь в конференции Прочее, если модератор разрешить личную переписку и обсуждение другого лица, без созданием им ветки с данной целью.

> Я попросил помощи, если кроме хвастовства тебе нечего сказать, то лучше промолчи

Это не тебе решать, а вот что тебе надо сделать в обязательном порядке - перейти на страницу форумов и внимательно прочитать правила. Повторить это три раза

> И вообще, не будь таким нервным. Этот форум для помощи людям.

Он нервный?
Ты уверен, что это форум именно для этой цели? Насколько мне известно форумы все таки несколько для других целей. Ты явно путаешь со службами поддержки, вот те именно для помощи.
На всякий случай взгляни в словарь иностранных слов.

Прими мир таким как есть, если пишешь в публичном форуме, то не лишай людей возможности делать тоже самое. А вот с порядком разберется модератор или ты и его функции хочешь себе забрать?

Последнее для подобных писем есть личная почта.

От имени и по поручению модератора
Анатолий Подгорецкий


 
app ©   (2006-11-10 09:06) [4]

Прочитал сообщение от Ориона и чего ты на него набросился?
Тебе не сюда, тебе в службу поддержки mail.ru, а с личными претензиями в персональную почту, нам читать личную переписку не интерсно, у нас тут Форум.


 
Rouse_ ©   (2006-11-10 09:10) [5]

IMHO msg - указатель на буффер, dlen - размер буффера.


 
evvcom ©   (2006-11-10 09:35) [6]

> [2] Vulix ©   (10.11.06 07:28)
> 2. номер отправляемой команды в текущем соединении. Ответ
> на команду должен иметь тот же номер, что и сама команда.
> это, как я понял, seq, т.е. это просто порядковое число?
> Тогда вопрос. Этот номер каждый раз надо увеличивать при
> любой команде на сервер?Даже просто при пинге?

Описание не читал, а надо ли мне это? Но из приведенной цитаты предполагаю, что seq - это сокращение от sequence (последовательность), т.е. по аналогии с Ораклом действительно уникальное число, ключ команды в данном случае.


 
evvcom ©   (2006-11-10 09:37) [7]

> [6] evvcom ©   (10.11.06 09:35)
> ключ команды

точнее ключ запроса на сервер, соответственно по этому ключу в ответе клиент понимает на какой запрос этот ответ.


 
Орион ©   (2006-11-10 10:05) [8]

> [2] Vulix ©   (10.11.06 07:28)

Вот если бы ты с самого начала написал такой пост, то и словестной тирады не было бы.
Формулировать надо вопросы правильно, а не "дайте кусок кода, потому как мне разбираться в лом".


> И вообще, не будь таким нервным. Этот форум для помощи людям.

Я не нервный, я прямолинейный :)


> [4] app ©   (10.11.06 09:06)
> Прочитал сообщение от Ориона и чего ты на него набросился?

Прочитал свое сообщение. Анатолий, я на него не набрасывался. Это тест на "баттонокидателя" :)


 
Vulix ©   (2006-11-10 10:09) [9]


> Ты уверен за его мнение? Может ты свое мнение приписываешь
> ему. Узнать об этом можешь в конференции Прочее, если модератор
> разрешить личную переписку и обсуждение другого лица, без
> созданием им ветки с данной целью.


А по моему он ясно это мнение выразил. Он сказал,что если сам не разберешься, значит не способен понять. Я же считаю, что человек много чего способен понять с чьей-либо помощью. Да и я уже сам разобрался, просто дело принципа. Когда человек просит помощи, то он надеется на помощь, а не на оскорбления, что типа ты неспособен это понять

> > Я попросил помощи, если кроме хвастовства тебе нечего
> > сказать, то лучше промолчи
> Это не тебе решать, а вот что
> тебе надо сделать в обязательном порядке - перейти на страницу
> форумов и внимательно прочитать правила. Повторить это три
> раза

Я за него не решал, я сказал "тебе лучше". Пусть принимает это как совет.
Правила перечитал. Что я нарушил? Может вопрос сформулировал неверно? Или неточно? Так можно было написать. Да и я сам потом уточнил.
Что же касается моих личных претензий, то я ответил на оскорбление. Если кто-то не понимает суть оскорбления, то могу пояснить.
Человек сказал меня, что я неспособен разобраться в теме сам. И что если я сам не разберусь, значит мне это не дано. Т.е. неявно звучит обвинение в глупости. А также в виде издевки сказал, что я наверное ищу готовый компонент и следует, что сам  я неспособен что либо сделать в этой области. Тем самым причислив меня к тому типу программистов, которые любят использовать только чужое ("Компонент на форму кинуть хотел и замена агенту готова?"). Причем о компоненте я речь не вел.
Я четко написал, что хочу разобрать заголовок пакетов. Отсюда я сделал выводы, что данный человек принадлежит к тому типу людей, которые что-то знают, но при этом когда видят, что другие это не знают, начинают этих людей унижать и опускать фразами "тебе это не дано".


> Прими мир таким как есть, если пишешь в публичном форуме,
>  то не лишай людей возможности делать тоже самое. А вот
> с порядком разберется модератор или ты и его функции хочешь
> себе забрать?

Вот бы я еще лишал кого-то способности сюда писать.


> Прочитал сообщение от Ориона и чего ты на него набросился?
> Тебе не сюда, тебе в службу поддержки mail.ru, а с личными
> претензиями в персональную почту, нам читать личную переписку
> не интерсно, у нас тут Форум.

Если бы это было написано Вам лично, то Вы бы по другому реагировали. А вот я не совсем понимаю, Вы, как модератор, должны лучше знать, что обсуждение протоколов тут не запрещено. Я не нашел этого в правилах.
И к тому же, если Вам читать личную переписку неинтересно, то можете посмотреть внимательней, кто начал эту переписку.
Или может быть сообщение от Ориона несет какую то полезную информацию по моему ответу? По-мне, так все его сообщение несет личную информацию ко мне.


 
Anatoly Podgoretsky ©   (2006-11-10 10:12) [10]

> Орион  (10.11.2006 10:05:08)  [8]

> > Прочитал сообщение от Ориона и чего ты на него набросился?

> Прочитал свое сообщение. Анатолий, я на него не набрасывался. Это тест на "баттонокидателя" :)

Так это не тебе, извиняюсь если ввел в заблуждение, надо было по длиннее фразу построить.
Меня всегда смущает, когда форумы принимают за службы поддержки.


 
Vulix ©   (2006-11-10 10:20) [11]

Да понятно все с вами...конечно. кто меня будет слушать, если вы там все знакомы между собой и друг-друга защищаете. Все ясно


 
Anatoly Podgoretsky ©   (2006-11-10 10:24) [12]

> Vulix  (10.11.2006 10:09:09)  [9]

Видишь ли там просьба была более похоже на требование.
Твое понимание теперь понятно, но увы оно например не совпадает с моим, а мое с действительностью.


 
pyJIoH ©   (2006-11-10 10:29) [13]

2 Vulix
тебе сколько лет?


 
Anatoly Podgoretsky ©   (2006-11-10 10:30) [14]

> Vulix  (10.11.2006 10:20:11)  [11]

Как все предсказуемо.


 
Vulix ©   (2006-11-10 10:35) [15]


> Anatoly Podgoretsky
> Как все предсказуемо.

Порой от фактов никуда не денешься, какими бы предсказуемыми они ни были.


> pyJIoH ©   (10.11.06 10:29) [13]
> 2 Vulixтебе сколько лет?


Мой личный  возраст тут ни при чем. Если ты с чем-то не согласен, можешь выразить свое несогласие

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


 
Anatoly Podgoretsky ©   (2006-11-10 10:37) [16]

> pyJIoH  (10.11.2006 10:29:13)  [13]

> тебе сколько лет?

Психологически или физически?


 
Anatoly Podgoretsky ©   (2006-11-10 10:44) [17]

> Vulix  (10.11.2006 10:35:15)  [15]

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

> И изначально я ждал другого.

Но твои ожидания не оправдались, из-за начально неверной оценки назначения форумов, это не служба поддержки и никто никому ничего не обязан, обязанности имеют только модераторы, но и то они добровольные. Остальные все делают на основе жеста доброй воли и за свой счет.


 
Ketmar ©   (2006-11-10 10:45) [18]

>[15] Vulix(c) 10-Nov-2006, 10:35
>Вы написали правила не оскорблять собеседника, при этом
>сами позволяете себе это делать
видишь ли, звание "собеседника" сначала надо заслужить. а по [0] ты в них не попадал никак.

такой вопрос "проканал" бы от того, кто показал себя на форуме более-менее профессионалом (да-да, круговая порука, если будет охота так понимать; хотя на самом деле вовсе не она). и то -- вряд ли более-менее известный форумчанин сформулировал бы вопрос таким образом. а если бы сформулировал -- скорее всего получил бы заслуженый пинок.

зыж а тебя удивляет, что знакомым позволено больше, нежели незнакомым? так это нормально. друга можно среди ночи впустить в квартиру. а вот незнакомого мужика -- вряд ли стоит.


 
Anatoly Podgoretsky ©   (2006-11-10 11:19) [19]

> Ketmar  (10.11.2006 10:45:18)  [18]

> а если бы сформулировал -- скорее всего получил бы заслуженый пинок.

Все получали в такой ситуации, не зависимо от известности.
Тебе мало давали по шее, когда ты ставил неконкретно вопрос или с претензиями на обязательность?


 
Ketmar ©   (2006-11-10 11:30) [20]

>[19] Anatoly Podgoretsky(c) 10-Nov-2006, 11:19
>Тебе мало давали по шее, когда ты ставил неконкретно
>вопрос или с претензиями на обязательность?
мало. точнее, редко -- я быстрообучаемый. %-))


 
Vulix ©   (2006-11-10 11:31) [21]


> Ketmar
> видишь ли, звание "собеседника" сначала надо заслужить.
> а по [0] ты в них не попадал никак.

А причем тут это? Каким бы я ни был новичком, это не дает право оскорблять меня, даже если я задал неточно вопрос. Ну никак это не позволяет тем, кто тут давно, говорить оскорбительные вещи


> Anatoly Podgoretsky
> Но твои ожидания не оправдались, из-за начально неверной
> оценки назначения форумов, это не служба поддержки и никто
> никому ничего не обязан, обязанности имеют только модераторы,
>  но и то они добровольные. Остальные все делают на основе
> жеста доброй воли и за свой счет.

Я вообще не пойму, я что ли требовал от кого-то что-то? Почему Вы создаете другую проблему, которой вообще не было? Я написал вопрос, не более.


> Anatoly Podgoretsky ©   (10.11.06 10:37) [16]
> > pyJIoH  (10.11.2006 10:29:13)  [13]> тебе сколько лет?
> Психологически или физически?

Анатолий, вот Вы взрослый человек. Вы должны выступать как третейский судья. Вы же себе позволяете опуститься до уровня того человека, который стал спрашивать про возраст. Если вы считаете меня малолеткой и подростком, да пожалуйста.
При всем уважении к Вам, мне порой кажется, что Вы ведете себя не совсем верно. Это мое личное мнение и спорить о нем я не буду.
Спасибо всем. Я сказал все, что хотел сказать


 
Ketmar ©   (2006-11-10 11:37) [22]

>[21] Vulix(c) 10-Nov-2006, 11:31
>А причем тут это? Каким бы я ни был новичком, это не дает
>право оскорблять меня, даже если я задал неточно вопрос.
>Ну никак это не позволяет тем, кто тут давно, говорить
>оскорбительные вещи
тебе уже всё пояснили. если хочешь сам устанавливать правила и следить за ними -- открывай свой форум.


 
Орион ©   (2006-11-10 11:38) [23]

> А причем тут это? Каким бы я ни был новичком, это не дает
> право оскорблять меня, даже если я задал неточно вопрос.
> Ну никак это не позволяет тем, кто тут давно, говорить оскорбительные
> вещи

послушайте, молодой человек, Вас никто не оскорблял. Возможно в более резкой форме, чем следовало, указал на ошибку.

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


 
Vulix ©   (2006-11-10 11:53) [24]


> Ketmar
> тебе уже всё пояснили. если хочешь сам устанавливать правила
> и следить за ними -- открывай свой форум.


Правила уже установлены на этом форуме и там это написано.

Однако сложно закончить разговор...когда пишут новые ответы...
В свою очередь я признаю, что неточно сформулировал вопрос, что привело к дальнейшему разногласию. Все мы люди с чувствами и особенностями характера. Не вижу смысла спорить дальше


 
Ketmar ©   (2006-11-10 12:17) [25]

>[24] Vulix(c) 10-Nov-2006, 11:53
>Правила уже установлены на этом форуме и там это написано.
в частности там написано и то, что обсуждать их бессмысленно. всё равно последняя инстанция -- модератор.

>Не вижу смысла спорить дальше
так тут кроме тебя никто и не спорил. остальные всего лишь пытались пояснить, где ты неправ. что, кстати говоря, для данной конференции нехарактерно. %-)


 
Anatoly Podgoretsky ©   (2006-11-10 12:35) [26]

> Ketmar  (10.11.2006 11:30:20)  [20]

Но давали? Давали, поскольку сам участвовал :-)


 
Ketmar ©   (2006-11-10 12:37) [27]

>[26] Anatoly Podgoretsky(c) 10-Nov-2006, 12:35
>Но давали? Давали, поскольку сам участвовал :-)
было, было. с этим я как раз не спорю. %-)


 
Anatoly Podgoretsky ©   (2006-11-10 12:39) [28]

> Vulix  (10.11.2006 11:31:21)  [21]

> Вы взрослый человек. Вы должны выступать как третейский судья.

Опять ложная предпосылка.
Ничего я не должен и не желаю.
Я веду себя в соответствии с текущей ситуацией и брать на себя обязанности третейского судьи не собираюсь.

Знаешь кого бьют соорющиеся стороны, правильно его самого.

Если я и высказываю свое мнение, то я его высказываю как свое мнение, а не как судья, кроме случаев когда я высказываюсь от имени модератора и не надо смешивать эти два понятия АП пользователь и АП модератор - это разные люди.


 
Anatoly Podgoretsky ©   (2006-11-10 12:41) [29]

> Орион  (10.11.2006 11:38:23)  [23]

Возможно в недостаточно резкой форме.

Ну будет холивар или что другое, так я тут рядом, из за угла гляжу. В любой момент закрою ветку и если надо то отправлю в путешествие, и мне плевать кто это будет, но это будет решение не АП, в app


 
Anatoly Podgoretsky ©   (2006-11-10 12:44) [30]

> Vulix  (10.11.2006 11:53:24)  [24]

> Однако сложно закончить разговор...когда пишут новые ответы...

Что есть, то есть - человек слабое существо.
Но иногда нужно в определенное время остановиться. Если чувствуешь что так надо.
А можно приятно провести время.

Я все таки не понял, почему ты постоянно говоришь про оскорбление?
А нас разное восприятие? Вероятнее всего.

Я считаю ответ вполне нормальным, может резким, но отвечают и резче, а вот наезды пресекаются незамедлитетельно.


 
pyJIoH ©   (2006-11-10 13:39) [31]


> Vulix ©   (10.11.06 11:31) [21]

>> Anatoly Podgoretsky ©   (10.11.06 10:37) [16]
> > > pyJIoH  (10.11.2006 10:29:13)  [13]> тебе сколько лет?
>> Психологически или физически?
>
> Анатолий, вот Вы взрослый человек. Вы должны выступать
> как третейский судья. Вы же себе позволяете опуститься
> до уровня того человека, который стал спрашивать про
> возраст

щаз кааак обижусь =)

Думаю, вам объяснено более чем доступно. Если не понятно - мое мыло в анкете.


 
han_malign ©   (2006-11-10 14:43) [32]


> IMHO msg - указатель на буффер, dlen - размер буффера.

- не угадал
http://agent.mail.ru/proto.h
typedef struct mrim_packet_header_t
{
   u_long      magic;  // Magic
   u_long      proto;  // Версия протокола
   u_long      seq;  // Sequence
   u_long      msg;  // Тип пакета
   u_long      dlen;   // Длина данных
   u_long from;  // Адрес отправителя
   u_long fromport; // Порт отправителя
   u_char reserved[16]; // Зарезервировано
}

а описание и довольно подробное здесь:
http://agent.mail.ru/dev-license.html
например насчет:
> это, как я понял, seq, т.е. это просто порядковое число?
>  Тогда вопрос. Этот номер каждый раз надо увеличивать при
> любой команде на сервер?Даже просто при пинге?

"Пакет: Сообщение
Имя пакета: MRIM_CS_MESSAGE
Тип пакета: cs
поле seq должно содержать номер, который в последствии будет содержаться в заголовке пакета MRIM_CS_MESSAGE_STATUS, оповещающем клиента о статусе доставки данного сообщения.
............."

только они, все же, слегка запутали "Имя пакета" - следует читать как "тип" (msg = MRIM_CS_MESSAGE)

А адрес:порт отправителя весьма полезен для P2P.
Sequence - "тяжелое наследие" транспортных протоколов без гарантии доставки(конкретно UDP) - для защиты от лишних "эхо"-датаграмм, и запроса повторной посылки разрушенных по пути пакетов(по уму, пока не пришел ответ, сообщение нужно хранить в буфере)

в данном случае оно нужно, поскольку "Взаимодействие с сервером происходит поверх постоянно установленного tcp-соединения посредством асинхронного обмена командами.", работу клиента можно приллюстрировать так:
RECV: S==>C запрос sseq
send: C==>S ответ sseq (обычно прямо из потока приема, синхронно)

SEND: C==>S запрос cseq >> хранить в buffer[cseq]
SEND: inc(cseq)
SEND: C==>S запрос cseq >> хранить в buffer[cseq]
SEND: inc(cseq)
....
RECV: S==>C ответ seq1 >> проверить/освободить buffer[seq1]
RECV: S==>C ответ seq2 >> проверить/освободить buffer[seq2]

здесь SEND:, RECV: - контекст потока(Thread) отправки, приема
send: - отправка из потока RECV (блокируя поток SEND - обычно компоненты сокетов позволяют посылку из разных потоков защищая "Send()" критической секцией)

З.Ы. Флудеры/флэймеры блин...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.072 c
2-1163579264
Elen
2006-11-15 11:27
2006.12.03
Запрет перемещений других окон в выбранной области экрана


2-1163532643
DoktorX
2006-11-14 22:30
2006.12.03
как из ImageList отобразить рисунок под номером 2


1-1161688783
SlavaK
2006-10-24 15:19
2006.12.03
Делал ли кто подобный компонент или просто класс


15-1163568336
jiny
2006-11-15 08:25
2006.12.03
Знаком ли кто-нибудь с теорией создания программы дактилоскопии ?


15-1163423745
I want Java)
2006-11-13 16:15
2006.12.03
Java





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский