Na skol'ko a mogu ponat' kompania mail.ru po6la po puti naimen'6ego soprotivlenia, a imenno, predostavila storonnim razrabot4ikam sozdavat' prilojenia. Na moy vzglad eto xoro6aa vozmojnost' pisat' spam servisi dla agenta mail.ru i sootvetstvenno spamit' za neploxie den'gi
Vi mojete napravlat' svoi voprosi, pojelania, predlojenia i realizacii programm na adres agent-dev@corp.mail.ru.
Vi mojete prisilat' svoi programmi dla razme6enia na na6em sayte. Pri6lite nam informaciu o svoey programme na adres agent-dev@corp.mail.ru.
MMP - protokol soedinenia Mail.Ru Agenta s ob6ey set'u Mail.Ru. Rekomendovanniy dla soedinenia server v luboy moment vremeni mojno polu4it' v tekstovom formate ip:port po adresu mrim.mail.ru:2042 i mrim.mail.ru:443. Vzaimodeystvie s serverom proisxodit poverx postoanno ustanovlennogo tcp-soedinenia posredstvom asinxronnogo obmena komandami. Iniciatorom ustanovlenia soedinenia mojet bit' tol'ko klient, komandi mogut posilat'sa kak klientom, tak i serverom.
MMP binarniy protokol. Vse 4islovie dannie peredautsa kak 4etirexbaytnie celie NE v setevom formate, t. e. pervim idet star6iy bayt, poslednim mlad6iy. 4etirexbaytovie bezznakovie celie obozna4autsa UL.
Tekstovie dannie peredautsa s prefeksirovannoy dlinoy, t. e. sna4ala UL, a potom stroka (v kodirovke windows-1251) dlini UL bez zaver6au6ego nula. Obozna4enie v dal'ney6em - LPS.
Kajdaa komanda ili otvet na nee na4inautsa s zagolovka. Pola ukazivaemie v zagolovke:
Vam ponadobitsa zagolovo4niy fayl na azike C. Vzat' ego mojno zdes'.
Spisok kodov gorodov, naselennix punktov i rayonov mojno vzat' zdes'.
- Paket: Ustanovka soedinenia
Ima paketa: MRIM_CS_HELLO
Otvet: MRIM_CS_HELLO_ACK
Tip paketa: cs
Opisanie: Perviy paket, otpravlaemiy na server.
- Paket: Podtverjdenie ustanovki soedinenia
Ima paketa: MRIM_CS_HELLO_ACK
Tip paketa: sc
Parametri:
UL ## ping_period ## Ojidaemaa 4astota podtverjdenia soedinenia (v sekundax)
Opisanie: Podtverjdaet vozmojnost' soedinenia i soob6aet klientu interval, s kotorim nado otpravlat' paketi kontrola soedinenia.
- Paket: Uspe6naa avtorizacia
Ima paketa: MRIM_CS_LOGIN_ACK
Tip paketa: sc
Opisanie: Soob6aet, 4to para login-parol' bila verna i klient uspe6no avtorizovalsa v seti agenta.
- Paket: Nevernaa avtorizacia
Ima paketa: MRIM_CS_LOGIN_REJ
Tip paketa: sc
Parametri:
LPS ## reason ## pri4ina otkaza
Opisanie: Soob6aet, 4to para login-parol' bila neverna, i soedinenie budet zaver6eno.
- Paket: Kontrol' soedinenia
Ima paketa: MRIM_CS_PING
Tip paketa: cs
Opisanie: Otpravka etogo paketa podtverjdaet dla servera, 4to klient aktiven. Paket doljen otpravlat'sa s intervalom, opredelennim v MRIM_CS_HELLO_ACK.
- Paket: Soob6enie
Ima paketa: MRIM_CS_MESSAGE
Tip paketa: cs
pole seq doljno soderjat' nomer, kotoriy v posledstvii budet soderjat'sa v zagolovke paketa MRIM_CS_MESSAGE_STATUS, opove6au6em klienta o statuse dostavki dannogo soob6enia.
Parametri:
UL ## flags ## flagi ##
MESSAGE_FLAG_OFFLINE ## Soob6enie pri6lo, poka klient bil otklu4en
MESSAGE_FLAG_NORECV ## Otpravitelu soob6enia ne trebuetsa podtverjdenia dostavki
MESSAGE_FLAG_AUTHORIZE ## Soob6enie avlaetsa zaprosom na avtorizaciu
MESSAGE_FLAG_SYSTEM ## Soob6enie avlaetsa sistemnim uvedomleniem administracii
MESSAGE_FLAG_RTF ## V soob6enii soderjitsa formatirovannaa 4ast'
MESSAGE_FLAG_CONTACT ## Soob6enie predstavlaet iz seba pereslanniy spisok kontaktov. Tekst soob6enia v etom slu4ae doljen predstavlat' iz seba spisok adresov i nikov peresilaemix kontaktov, pere4islennix 4erez to4ku s zapatoy. <adres1>;<nik1>;<adres2>;<nik2>;<adres3>;<nik3>;...
MESSAGE_FLAG_NOTIFY ## Eto soob6enie-uvedomlenie "Vam pi6ut". Doljno posilat'sa kajdie 10 sekund, pri bolee dlinnoy pauze klient-polu4atel' doljen s4itat', 4to otpravitel' prekratil napisanie. Tekst takogo soob6enia doljen sostoat' iz odnogo probela.
MESSAGE_FLAG_MULTICAST ## Soob6enie napravleno spisku polu4ateley, a ne odnomu. Pole to v takom slu4ae sostoit iz spiska polu4ateley, pere4islennix 4erez zapatuu. Maksimal'naa dlina spiska - 50 adresov.
LPS ## to ## email polu4atela
LPS ## message ## tekstovaa versia otpravlaemogo soob6enia
LPS ## rtf-message ## otformatirovannaa versia otpravlaemogo soob6enia, v slu4ae nali4ia oboix versiy soob6enia prioritet imeet rtf-versia. Ona doljna soderjat' rtf-tekst upakovanniy gzip v base64 predstavlenii. To est':
BASE64(
GZIP(
UL koli4estvo LPS (doljno bit' ne menee 2)
LPS rtf_text_with_all_rtf_headers_and_tags
LPS cvet fona v vide UL
)
)
Opisanie: Osnovnoy paket vzaimodeystvia mejdu dvuma klientami. Mojet bit' otpravleno v luboy moment po iniciative klienta. Ni tekstovaa, ni rtf 4asti soob6eniy ne mogut bit' pustimi, pri neobxodimosti sleduet ispol'zovat' stroku iz odnogo probela.
- Paket: Dostavka soob6enia
Ima paketa: MRIM_CS_MESSAGE_ACK
Tip paketa: sc
Parametri:
UL ## msg_id ## Nomer paketa (Sequence) etogo soob6enia dla otpravitela
UL ## flags ## Vozmojnie zna4enia opisani v MRIM_CS_MESSAGE
LPS ## from ## Adres otpravitela
LPS ## message ## tekstovaa versia soob6enia
LPS ## rtf-message ## formatirovannaa versia soob6enia
Opisanie:
- Paket: Podtverjdenie polu4enia soob6enia
Ima paketa: MRIM_CS_MESSAGE_RECV
Tip paketa: cs
Parametri:
LPS ## from ##
UL ## msg_id ##
Opisanie: Otpravlaetsa polu4atelem soob6enia srazu posle prixoda MRIM_CS_MESSAGE_ACK, esli flagi MRIM_CS_MESSAGE_ACK ne soderjali MESSAGE_FLAG_NORECV. from i msg_id doljni bit' skopirovani iz MRIM_CS_MESSAGE_ACK i imeut to je zna4enie.
- Paket: Podtverjdenie dostavki soob6enia
Ima paketa: MRIM_CS_MESSAGE_STATUS
Tip paketa: sc
Pole seq 4islenno ravno polu seq paketa MRIM_CS_MESSAGE
Parametri:
UL ## status ## status dostavki ##
MESSAGE_DELIVERED ## Soob6enie uspe6no dostavleno
MESSAGE_REJECTED_INTERR ## Proizo6la vnutrennaa o6ibka
MESSAGE_REJECTED_NOUSER ## Ne su6estvuet pol'zovatela-polu4atela soob6enia
MESSAGE_REJECTED_LIMIT_EXCEEDED ## Pol'zovatel'-polu4atel' v danniy moment otklu4en ot seti, i soob6enie ne pome6aetsa v ego po4toviy a6ik
MESSAGE_REJECTED_TOO_LARGE ## Razmer soob6enia previ6aet maksimal'no dopustimiy
MESSAGE_REJECTED_DENY_OFFMSG ## Pol'zovatel'-polu4atel' v danniy moment otklu4en ot seti, a nastroyki ego po4tovogo a6ika ne dopuskaut nali4ie offlaynovix soob6eniy agenta
Opisanie: Otpravlennoe soob6enie s4itaetsa dostavlennim tol'ko posle polu4enia etogo otveta servera. Server NE GARANTIRUET dostavku soob6enia. V slu4ae otstutstvia MRIM_CS_MESSAGE_STATUS bolee intervala podtverjdenia soedinenia, programma klient doljna poslat' soob6enie povtorno ili proinformirovat' pol'zovatela o nevozmojnosti dostavki iz-za problem svazi polu4atela.
- Paket: Smena statusa drugogo pol'zovatela
Ima paketa: MRIM_CS_USER_STATUS
Tip paketa: sc
Parametri:
UL ## status ## noviy status pol'zovatela ##
STATUS_OFFLINE ## Pol'zovatel' otklu4en ot seti Agenta
STATUS_ONLINE ## Pol'zovatel' naxoditsa v seti
STATUS_AWAY ## Pol'zovatel' v seti, no oto6el ot komp'utera
STATUS_UNDETERMINATED ## Nastroyki pol'zovatela zapre6aut pokazivat' ego status
STATUS_FLAG_INVISIBLE ## Pol'zovatel' naxoditsa v seti, no nevidim dla vsex, krome privilegirovannix pol'zovateley iz ego spiska vidimosti.
LPS ## user ## email smeniv6ego svoy status pol'zovatela
Opisanie: Eto soob6enie otpravlaetsa serverom pri smene statusa pol'zovatelam vsem tem, u kogo on naxoditsa v kontakt-liste (za isklu4eniem gruppi "Jdu Avtorizacii" i tex, kogo on vklu4il v spisok ignoriruemix ili nevida6ix). Dannoe soob6enie mojet bit' dostavleno klientu DO polu4enia im kontakt-lista. V takoy situacii ono doljno ignorirovat'sa.
- Paket: Zakritie soedinenia
Ima paketa: MRIM_CS_LOGOUT
Tip paketa: sc
Parametri:
UL ## reason ## pri4ina otklu4enia ##
LOGOUT_NO_RELOGIN_FLAG ## Pol'zovatel' otklu4en iz-za parallel'nogo vxoda s ego loginom. Klient ne doljen osu6estvlat' avtomati4eskiy perezaxod v etom slu4ae.
- Paket: Izmenenie parametrov soedinenia
Ima paketa: MRIM_CS_CONNECTION_PARAM
Tip paketa: sc
Parametri:
UL ## ping_period ## novaa ojidaemaa 4astota podtverjdenia soedinenia
Opisanie: Blijay6iy MRIM_CS_PING sleduet otpravlat' uje isxoda iz novoy 4astoti.
- Paket: Dobavlenie novogo kontakta
Ima paketa: MRIM_CS_ADD_CONTACT
Tip paketa: cs
Parametri:
UL ## flags ## flagi ##
CONTACT_FLAG_GROUP ## Dobavlaetsa novaa gruppa, a ne kontakt (nesovmestim s ostal'nimi). Verxniy bayt soderjit koli4estvo uje imeu6ixsa grupp v kontakt-liste
CONTACT_FLAG_INVISIBLE ## Kontakt doljen popast' v spisok "A vsegda nevidim dla"
CONTACT_FLAG_VISIBLE ## Kontakt doljen popast' v spisok "A vsegda vidim dla"
CONTACT_FLAG_IGNORE ## Kontakt doljen popast' v spisok ignoriruemix
CONTACT_FLAG_SHADOW ## Kontakt ne doljen popast' v osnovnoy kontakt-list (primenaetsa v pare s odnim iz trex predidu6ix)
CONTACT_FLAG_REMOVED ## Kontakt udalen
UL ## group_id ## gruppa, v kotoruu doljen bit' dobavlen kontakt (dla CONTACT_FLAG_GROUP ravno 0)
LPS ## email ## dobavlaemiy adres (ima gruppi dla CONTACT_FLAG_GROUP)
LPS ## name ## nik dobavlaemogo pol'zovatela (dla otobrajenia v kontakt-liste, ne posilaetsa dla CONTACT_FLAG_GROUP) LPS ## unused ## neispol'zuemiy parametr
- Paket: Podtverjdenie dobavlenia kontakta
Ima paketa: MRIM_CS_ADD_CONTACT_ACK
Tip paketa: sc
Parametri:
UL ## status ## rezul'tat operacii ##
CONTACT_OPER_SUCCESS ## dobavlenie proizvedeno uspe6no
CONTACT_OPER_ERROR ## peredannie dannie bili nekorrektni
CONTACT_OPER_INTERR ## pri obrabotke zaprosa proizo6la vnutrennaa o6ibka
CONTACT_OPER_NO_SUCH_USER ## dobavlaemogo pol'zovatela ne su6estvuet v sisteme
CONTACT_OPER_INVALID_INFO ## nekorrektnoe ima pol'zovatela
CONTACT_OPER_USER_EXISTS ## pol'zovatel' uje est' v kontakt-liste
CONTACT_OPER_GROUP_LIMIT ## previ6eno maksimal'no dopustimoe koli4estvo grupp (20)
## UL ## contact_id ## prisvoenniy novomu kontaktu nomer
Opisanie: Prixodit v otvet na MRIM_CS_ADD_CONTACT. -1 esli status ne raven CONTACT_OPER_SUCCESS.
- Paket: Izmenenie kontakta
Ima paketa: MRIM_CS_MODIFY_CONTACT
Tip paketa: cs
Parametri:
UL ## id ## nomer modificiruemogo kontakta
UL ## flags ##
UL ## group_id ## Ravno 0 dla gruppi
LPS ## contact ## Esli gruppa, to ima gruppi
LPS ## name ## Esli gruppa, to ima gruppi
Opisanie: Parametri te je, 4to i u MRIM_CS_ADD_CONTACT. contact do i posle izmenenia obazani sovpadat'.
- Paket: Podtverjdenie izmenenia kontakta
Ima paketa: MRIM_CS_MODIFY_CONTACT_ACK
Tip paketa: sc
Parametri:
UL ## status ## Rezul'tat operacii. Zna4enia imeut tot je smisl, 4to i v MRIM_CS_ADD_CONTACT_ACK
- Paket: Soob6enie dostavlennoe, poka pol'zovatel' ne bil podklu4en k seti
Ima paketa: MRIM_CS_OFFLINE_MESSAGE_ACK
Tip paketa: sc
Parametri:
UIDL ## uidl ## id soob6enia
LPS ## message ## soob6enie. Soob6enie prixodit v formate RFC/822 pis'ma. Otpravitel' soob6enia xranitsa v zagolovke From, data v zagolovke Date, flagi soob6enia v X-MRIM-FLAGS, tekstovaa i formatirovannaa versii soob6enia sostavlaut tekst pis'ma i razdelautsa mejdu soboy razdelitelem iz zagolovka Boundary.
Opisanie: Kajdoe polu4ennoe za vrema otsutstvia soob6enie prixodit otdel'nim paketom v tom poradke, v kakom oni postupali na server.
- Paket: Udalenie soxranennogo soob6enia
Ima paketa: MRIM_CS_OFFLINE_MESSAGE_DEL
Tip paketa: cs
Parametri:
UIDL ## uidl
Opisanie: Na kajdiy polu4enniy MRIM_CS_OFFLINE_MESSAGE_ACK klient obazan otpravit' MRIM_CS_OFFLINE_MESSAGE_DEL s tem je uidl, podtverjdau6iy polu4enie dannogo soob6enia. Soob6enie stiraetsa na servere tol'ko pri polu4enii etoy komandi.
- Paket: Avtorizacia pol'zovatela na dobavlenie v kontakt-list
Ima paketa: MRIM_CS_AUTHORIZE
Tip paketa: cs
Parametri:
LPS ## user ## email pol'zovatela
Opisanie: Otpravlaetsa, 4tobi razre6it' user dobavlenie pol'zovatela v kontakt-list i nabludenie za ego statusom.
- Paket: Informacia ob avtorizacii
Ima paketa: MRIM_CS_AUTHORIZE_ACK
Tip paketa: sc
Parametri:
LPS ## user ## email avtorizovav6ego pol'zovatela
Opisanie: Otsilaetsa serverom posle polu4eniem im MRIM_CS_AUTHORIZE ot user tomu, kogo user avtorizoval.
- Paket: Izmenenie statusa
Ima paketa: MRIM_CS_CHANGE_STATUS
Tip paketa: cs
Parametri:
UL ## status ## vozmojnie zna4enia sovpadaut s MRIM_CS_USER_STATUS, no ne mogut posilat'sa statusi STATUS_UNDETERMINATED i STATUS_OFFLINE
- Paket: Trebovanie klu4a dla web-avtorizacii
Ima paketa: MRIM_CS_GET_MPOP_SESSION
Tip paketa: cs
Opisanie: Pol'zovatel' agenta mojet zaxodit' v po4toviy a6ik Mail.Ru bez dopolnitel'noy avtorizacii i ne peredavaa svoy parol' v GET-zaprose, dla etogo ispol'zuetsa mexanizm klu4ey.
- Paket: Klu4 dla web-avtorizacii
Ima paketa: MRIM_CS_GET_MPOP_SESSION_ACK
Tip paketa: sc
Parametri:
UL ## status ## uspe6nost' operacii (1 - klu4 polu4en, 0 - proizo6la o6ibka)
LPS ## session ## sam klu4
Opisanie: Dla vxoda v a6ik mojno ispol'zovat' URL win.mail.ru/cgi-bin/auth?Login=email&agent=klu4.
- Paket: Poisk kontakta
Ima paketa: MRIM_CS_WP_REQUEST
Tip paketa: cs
Parametri:
UL ## field ## parametr poiska ##
MRIM_CS_WP_REQUEST_PARAM_USER ## login (bez domena), obazan kombinirovat'sa s domenom
MRIM_CS_WP_REQUEST_PARAM_DOMAIN ## po4toviy domen
MRIM_CS_WP_REQUEST_PARAM_NICKNAME ## nik
MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME ## ima
MRIM_CS_WP_REQUEST_PARAM_LASTNAME ## familia, * v konce nika/imeni/familii ukazivaet na vozmojnost' lubogo prodoljenia imeni
MRIM_CS_WP_REQUEST_PARAM_SEX ## pol. 1 - mujskoy, 2 - jenskiy
MRIM_CS_WP_REQUEST_PARAM_DATE1 ## minimal'niy vozrast (v godax)
MRIM_CS_WP_REQUEST_PARAM_DATE2 ## maksimal'niy vozrast (v godax)
MRIM_CS_WP_REQUEST_PARAM_CITY_ID ## ID regiona projivania
MRIM_CS_WP_REQUEST_PARAM_ZODIAC ## Znak zodiaka (Oven - 1, ..., Ribi - 12)
MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH ## Mesac rojdenia (Anvar' - 1, ..., Dekabr' - 12)
MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY ## Den' rojdenia (obazan kombinirovat'sa s mesacem rojdenia)
MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID ## ID strani projivania
MRIM_CS_WP_REQUEST_PARAM_ONLINE ## i6em li mi tol'ko podklu4ennix v danniy moment pol'zovateley (1)
LPS ## value vse parametri v strokovom formate, vklu4aa 4isla
Opisanie: Poisk kontaktov v baze agenta. Parametri poiska peredautsa parami parametr-zna4enie. Pereda4a neskol'kix parametrov imeet semantiku "i", t. e. vse naydennie rezul'tati doljni sootvetstvovat' vsem peredannim parametram. Kombinirovat'sa mogut vse parametri za isklu4eniem logina i domena (oni obazani idti paroy i ne mogut kombinirovat'sa s drugimi parametrami) v poradke sootvetstvuu6em poradku opisania (za isklu4eniem trebovania dla MRIM_CS_WP_REQUEST_PARAM_ONLINE bit' poslednim v spiske).
- Paket: Naydennie pol'zovateli
Ima paketa: MRIM_CS_ANKETA_INFO
Tip paketa: cs
Parametri:
UL ## status ## uspe6nost' zaprosa ##
MRIM_ANKETA_INFO_STATUS_OK ## poisk uspe6no zaver6en
MRIM_ANKETA_INFO_STATUS_NOUSER ## ne naydeno ni odnoy podxoda6ey zapisi
MRIM_ANKETA_INFO_STATUS_RATELIMERR ## sli6kom mnogo zaprosov, poisk vremenno zapre6en
UL ## fields_num ## koli4estvo poley v ankete kajdogo pol'zovatela
UL ## max_rows ## teku6ee ograni4enie na koli4estvo rezul'tatov poiska (mojet bit' bol'6e, 4em koli4estvo strok v dannom otvete)
UL ## server_time ## teku6ee vrema na servere (doljno ispol'zovat'sa dla vi4islenia vozrasta). Format vremeni: Koli4estvo sekund s 00:00:00 1 anvara 1970 goda.
LPS, LPS, ... ## fields ## nazvania poley teku6ey anketi (vsego fields_num 6tuk)
LPS, LPS, ... ## values ## zna4enia poley anketi dla kajdogo naydennogo po zaprosu pol'zovatela v tom je poradke, 4to v spiske poley, po fields_num 6tuk na kajdogo
Opisanie: Rezul'tat poiska kontaktov. Vozvra6aet anketi naydennix pol'zovateley (ix adresa avlautsa polami anketi).
- Paket: Koli4estvo pisem v po4tovom a6ike
Ima paketa: MRIM_CS_MAILBOX_STATUS
Tip paketa: sc
Parametri:
UL ## status ## koli4estvo nepro4itannix pisem
Opisanie: Prixodit pri polu4enii novoy po4ti ili lubom drugom izmenenii 4isla nepro4itannix pisem v a6ike.
- Paket: Kontakt-list
Ima paketa: MRIM_CS_CONTACT_LIST2
Tip paketa: sc
Parametri:
UL ## status ## rezul'tat zaprosa kontakt-lista
GET_CONTACTS_OK ## poisk vipolnen uspe6no
GET_CONTACTS_ERROR ## naydenniy kontakt-list nekorrekten
GET_CONTACTS_INTERR ## proizo6la vnutrennaa o6ibka
UL ## groups_number ## koli4estvo grupp v kontakt-liste
LPS ## group_mask ## maska-opisanie gruppi, sostoit iz simvolov s (LPS),u (UL),z (stroka okan4ivau6aasa binarnim nulem, v danniy moment ne ispol'zuetsa), sey4as "us" - flagi i nazvanie, pri ras6irenii opisania starie pola soxranat svoe raspolojenie
LPS ## contacts_mask ## maska-opisanie pol'zovatela (sintaksis takoy je kak i u group_mask), sey4as uussuu (flagi, gruppa, adres, nik, servernie flagi, teku6iy status v seti)
## groups ## gruppi (vsego groups_number 6tuk)
## contacts ## kontakti
Opisanie: Kontakt-list pol'zovatela xranitsa na servere. Klient mojet xranit' lokal'nuu kopiu kontakt-lista, no servernaa doljna imet' prioritet. Flagi kontakta imeut tot je smisl, 4to v MRIM_CS_ADD_CONTACT, status - tot je smisl, 4to v MRIM_CS_USER_STATUS. Serverniy flag v danniy moment opredelёn odin - CONTACT_INTFLAG_NOT_AUTHORIZED ozna4aet, 4to kontakt e6e ne avtorizoval pol'zovatela i naxoditsa v gruppe "Jdu avtorizacii". Esli maska kontakta ili gruppi soderjit bol'6e simvolov, 4em neobxodimo, klient doljen pro4itat' zna4enia etix poley i proignorirovat' ix.
- Paket: Informacia o pol'zovatele
Ima paketa: MRIM_CS_USER_INFO
Tip paketa: sc
Parametri:
LPS, LPS, ... ##name1, value1, name2, value2, ... ## dopolnitel'naa informacia o pol'zovatele, ima parametra, zna4enie parametra, ima parametra, zna4enie parametra, ... Na danniy moment opredeleni MESSAGES.TOTAL - koli4estvo pisem v a6ike, MESSAGES.UNREAD - koli4estvo nepro4itannix pisem v a6ike, MRIM.NICKNAME - nik pol'zovatela
- Paket: Avtorizacia
Ima paketa: MRIM_CS_LOGIN2
Tip paketa: cs
Parametri:
LPS ## login ## email avtorizuu6egosa pol'zovatela
LPS ## password ## parol'
UL ## status ## status (sm. MRIM_CS_CHANGE_STATUS)
LPS ## user_agent ## tekstovoe opisanie klienta pol'zovatela, naprimer "Mail.Ru Miranda Plugin v 1.0"
- Paket: Pereda4a faylov
Ima paketa: MRIM_CS_FILE_TRANSFER
Tip paketa: cs/sc
Parametri:
LPS - komu(dla otpravlau6iego xosta)/ot kogo(dla prinimau6ego xosta)
DWORD - unikal'niy identifikator sessii pereda4i faylov
DWORD - Summarniy razmer vsex peredavaemix faylov.
LPS - Stroka, soderja6aa v sebe tri LPS-podstroki:
LPS - stroka s opisaniem vsex peredavaemix faylov. Imeet sleduu6iy format "#FILENAME#:#SIZE#;#FILENAME#:#SIZE#;", gde #FILENAME# - ima kajdogo peredavaemogo fayla, #SIZE# razmer kajdogo peredavaemogo fayla.
LPS - Stroka sey4as ravna 0.
LPS - stroka s pere4isleniem adresa i porta, kotorie otkril dla pereda4i xost, iniciirovav6iy soedinenie. Imeet sleduu6iy format: "#IP#:#PORT#;#IP#:#PORT#;", gde #IP# - tcp/ip adres peredau6ego xosta, #PORT# - tcp/ip port peredau6ego xosta
- Paket: Podtverjdenie pereda4i faylov
Ima paketa: MRIM_CS_FILE_TRANSFER_ACK
Tip paketa: cs/sc
Parametri:
DWORD - status
FILE_TRANSFER_STATUS_OK - udalenniy xost soglasilsa na priem faylov
FILE_TRANSFER_STATUS_DECLINE - udalenniy xost otkazalsa prinimat' fayli
FILE_TRANSFER_STATUS_ERROR - pri pereda4e faylov proizo6la o6ibka
FILE_TRANSFER_STATUS_INCOMPATIBLE_VERS - udalenniy xost ne podderjivaet pereda4u faylov
FILE_TRANSFER_MIRROR - udalenniy xost zaprosil "zerkal'noe" soedinenie.Otpravlaetsa v slu4ae, esli ne udalos' soedineit'sa po ukazannim v MRIM_CS_FILE_TRANSFER param #IP#:#PORT#
LPS - komu(dla otpravlau6iego xosta)/ot kogo(dla prinimau6ego xosta)
DWORD - unikal'niy identifikator sessii pereda4i faylov
LPS - Stroka ispol'zuetsa v slu4ae ustanovki v pole status zna4enia FILE_TRANSFER_MIRROR i soderjit stroku s pere4isleniem adresa i porta, kotorie otkril dla pereda4i xost, zaprosiv6iy zerkal'noe soedinenia. Imeet sleduu6iy format: "#IP#:#PORT#;#IP#:#PORT#;", gde #IP# - tcp/ip adres peredau6ego xosta, #PORT# - tcp/ip port peredau6ego xosta:
Opisanie: Esli soedinenie mejdu klientami ustanovleno, to ob6enie mejdu xostami osu6estvlaetsa po sleduu6ey sxeme:
Klient (kto vipolnil connect() ):posilaet stroku "MRA_FT_HELLO svoy_login" i ojidaet stroku «MRA_FT_HELLO login_opponenta»
Server (k komu ustanovlen connect() ): ojidaet stroku "MRA_FT_HELLO login_opponenta" posilaet stroku «MRA_FT_HELLO svoy_login»
Dalee, klient posilaet na kajdiy fayl iz spiska zapros: "MRA_FT_GET_FILE ima_fayla_bez_puti", posle etogo on polu4aet rovno stol'ko bayt, skol'ko bilo ukazano v razmere fayla v spiske. Zatem polu4atel' posilaet sleduu6iy zapros "MRA_FT_GET_FILE ima_fayla_bez_puti" i.t.d.