рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдорд╛рд░реЗ
IMAP рд╕рд░реНрд╡рд░ рдиреЗ рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдПрдкреЛрд▓ рд░рд┐рдПрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд▓реЛрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЯрд┐рдкреНрдкрдгреА рдзреАрд░реЗ-рдзреАрд░реЗ рдЖрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддрдХрдиреАрдХреА рдЛрдг рд╕рдордп рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢реБрд░реБрдЖрддреА рд╕реНрдерд╛рдкрддреНрдп рдиреЛрдЯ рднреА рдереЗред
- рд░рд┐рдПрдХреНрдЯрд░ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдЖрдиреЗ рдкрд░ рджреМрдбрд╝-рд╣рд╛рд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд░реЛрдХрд╛ рдпрд╛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡ рдмрд╛рдИрдкрд╛рд╕ рдорд╛рд░реНрдЧ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓рдЧ рд░рд╣реЗ рдереЗред
- рд░рд┐рдПрдХреНрдЯрд░ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдлреБрд▓-рдбреБрдкреНрд▓реЗрдХреНрд╕ рдореЛрдб рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдиреЗ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬреИрд╕реЗ рдХрд┐ IMAPред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╣рдо рдЕрдХреНрд╕рд░ IProto рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдкреВрд░реНрдг-рджреНрд╡реИрдз рд╕рдВрдЪрд╛рд░ред
IProto рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░: рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: uint32_t рдкреНрд░рдХрд╛рд░ рдХреЗ рддреАрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдПрдХ рд╣реЗрдбрд░: рдХрдорд╛рдВрдб, рдкреИрдХреЗрдЯ рд╕рдВрдЦреНрдпрд╛, рдбреЗрдЯрд╛ рд▓рдВрдмрд╛рдИред "рдкреИрдХреЗрдЯ рдирдВрдмрд░" рдлрд╝реАрд▓реНрдб рдХреЗ рдХрд╛рд░рдг, рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реИрд▓реА рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред Mail.Ru Group рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ Tarantool рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдВрдЯреА-рдмреНрд░реВрдЯ рдмрд▓ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :: asioред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ :: asio рд░рд┐рдПрдХреНрдЯрд░, рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХрд┐рдП рдЧрдП рдиреБрдХрд╕рд╛рдиред
рдЖрдкрдиреЗ рдмрдврд╝рд╛рд╡рд╛ рдХреНрдпреЛрдВ рдЪреБрдирд╛ :: asio? рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдПрдкреЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорддрджрд╛рди рд╕реЙрдХреЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЯрд╛рдЗрдорд░, рдереНрд░реЗрдбреНрд╕, RC рд░реЛрдХрдерд╛рдо рд░рдгрдиреАрддрд┐рдпреЛрдВ, SSL рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди, IPv6 рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрдврд╝рд╛рд╡рд╛ :: asio рдЖрдкрдХреЛ рдпрд╣ рд╕рдм C ++ рд╢реИрд▓реА рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдкреБрдирд░реНрд╡рд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд░рд┐рдПрдХреНрдЯрд░ рдХреЛ рдмрджрд▓рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рдерд╛ред рдпрд╣ рдХрдИ рдХрд╛рд░рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдорджрдж рдХреА рдЧрдИ рдереАред
- рдкреБрд░рд╛рдиреЗ рд░рд┐рдПрдХреНрдЯрд░ рдореЗрдВ, рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯрд░ рд╕реЗ рд╣реА рдмреБрд▓рд╛рдП рдЧрдП рдереЗ, рдЗрд╕рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдкрдврд╝рдирд╛ / рд▓рд┐рдЦрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдмреЗрд╢рдХ, рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ FETCH рдХрдорд╛рдВрдб, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЯрд╛рдЗрдорд░ рдиреЗ рд░рд┐рдПрдХреНрдЯрд░ рд╕реЗ рд╣реА рдЕрд▓рдЧ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрд╢реА рджреНрд╡рд╛рд░рд╛ asio deadline_timer рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред
- Asio :: рд╕реНрдЯреНрд░реИрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ RC рд░реЛрдХрдерд╛рдо рд░рдгрдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдмрдврд╝рд╛рд╡рд╛ :: asio рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдХреА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЧрддрд┐ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ ( рдкреНрд░рдорд╛рдг ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрдзрд┐рдХ рд╣реИред
рдХреБрдЫ рдЪреАрдЬреЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдВрдХрдбрд╝реЗ рд╕рдВрдЧреНрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ред рдпрд╣ рдПрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрджрдо рдерд╛: рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдВрдХрдбрд╝реЗ рд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ "рдлреНрд▓рд╛рдИ рдкрд░" рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдкреНрд▓рд╕ рдпреВрдбреАрдкреА рдХреЛ рдЧреНрд░рд╛рдлрд┐рдЯ, рдкреНрд▓рд╕ рдкрд░рдорд╛рдгреБ рдЪрд░ рдХреЛ рд╕рд░реНрд╡рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд╣рд▓реЗ рд░рд┐рд▓реАрдЬ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдЬрд╡рд╛рдмрджреЗрд╣реА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рдереА, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕рдиреНрди рд╣реИред рдмреЗрд╢рдХ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕реАрд▓рд╛ рдирд╣реАрдВ рдерд╛ - рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, asio :: рд╕реНрдЯреНрд░реИрдВрдб рдХреЗ рд╕рд╛рде, рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЙрдЪрд┐рдд рдЖрддреНрдо-рд╡рд┐рдирд╛рд╢ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде, "рднрд╛рд░реА" APPEND, COPY, FETCH рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде, рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде :: asio :: streambuf, рдЬреЛ рдореЗрдореЛрд░реА рджреЗрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдмрд╛рддред
рд╕рд░реНрд╡рд░ рд╕рдВрд░рдЪрдирд╛рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╕реЗ
HTTP рд╕рд░реНрд╡рд░ 3 рдХреЗ рд╕рдорд╛рди рд╣реИ :: asio рдЙрджрд╛рд╣рд░рдгред
рдЗрд╡реЗрдВрдЯ рдереНрд░реЗрдб рдкреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ io_service :: рд░рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдЪреНрдЪ рд╕рд░реНрд╡рд░ рдЬрд╡рд╛рдмрджреЗрд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рднреА рдирд┐рд╢реБрд▓реНрдХ рдереНрд░реЗрдб рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд░реНрдЧ рдХреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рд╛рдкреНрдд / рдкреНрд░рд╕рд╛рд░рд┐рдд / рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, RFC рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЬреНрдп рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВ: рдЕрдирдзрд┐рдХреГрдд, рдЕрдзрд┐рдХреГрддред рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдбреЗрдбрд▓рд╛рдЗрди_рдЯрд╛рдЗрдорд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдПрдХ рд╕реЙрдХреЗрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ asio :: ssl :: рд╕реНрдЯреНрд░реАрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЗрд╕рдореЗрдВ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдПрд╕рд┐рдпреЛ - рд╕реНрдЯреНрд░реИрдВрдб рдХреЛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдпреБрдЧрдкрдд рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред (рдЪреВрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдПрдХ рдЕрд▓рдЧ рд╢реНрд░реЛрддрд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, рдЙрди рдкрд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ SSL рд╣реИрдВрдбрд╢реЗрдХ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╣реИрдВрдбрд▓рд░ рдПрдХ рд╣реА рдереНрд░реЗрдб рдкреВрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рднрд┐рдиреНрди "рднрд╛рд░реА" рдСрдкрд░реЗрд╢рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрдЯреНрд░реИрдВрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдирд╛ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдФрд░ рдХрдорд╛рдВрдб рдХрд╛рдлреА рд▓рдВрдмреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, COPY)ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЖрд░рд╕реА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдореЛрдб рдореЗрдВ рдпрд╣ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕реНрдЯреНрд░реИрдВрдб рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рд╕рд░реНрд╡рд░ рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣реА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рдХрд░рддрд╛ рд╣реИ, рдЙрди рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ RC рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдлрд┐рд░ io_service :: рдкреЛрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ deattached рдореЛрдб рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛ред
FETCH рдХрдорд╛рдВрдб рднреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, "рдзреАрдореА" рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдмрдлрд░ рдХрд╛рдлреА рд╕рдордп рдХреЗ рд▓рд┐рдП "рдлреНрд░реАрдЬ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдореЗрдореЛрд░реА рдЦрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣реИрдВрдбрд▓рд░ 1 рдПрдордмреА рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдкрддреНрд░ рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреГрд╢реНрдпрдорд╛рди рдлрд╛рдпрджреЗ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЬрдмрдХрд┐ рдпрд╣ 1 рдПрдордмреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЙрддреНрддрд░ рдХреЗ рдЕрдЧрд▓реЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдФрд░ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреИрд╕реЗ asio рд▓реЛрдб рдХреЗ рддрд╣рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИрд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдареАрдХ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рд▓рдЧрднрдЧ 40 рд╣рдЬрд╛рд░ рдЧреНрд░рд╛рд╣рдХ рдХрдиреЗрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд▓рд╕ рдХреБрдЫ рдФрд░ - рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП: рдбреЗрдЯрд╛рдмреЗрд╕, рд╕реНрдЯреЛрд░реЗрдЬ, рдЖрджрд┐ред рдЗрди рд╕рднреА рдХреЛ рдЖрд╕рд┐рдпреЛ рд░рд┐рдПрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред CPU рд╢рд╛рдпрдж рд╣реА рдХрднреА 10-20% рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ: рдХрдиреЗрдХреНрд╢рди рдХреА рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХреА рдЦрдкрдд 6-7 рдЬреАрдмреА рдХреЗ рд╕реНрддрд░ рдкрд░ рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдорд╛рдВрдб рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЗ рдХрд╛рд░рдгред
рд╢рд╛рдпрдж рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ
10K рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рддреЛ, asio рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ asio рдкрд░ рдЖрд╡реЗрджрди рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИред рдЬрдм рдпрд╣ рдмрд┐рдВрджреБ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ C100K рдпрд╛ C1M рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ...рдХреНрдпрд╛ рд╣рдордиреЗ рдЖрд╕рд┐рдпреЛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдиреБрдХрд╕рд╛рди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ? рдмреЗрд╢рдХ рд╣рд╛рдБред рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИрдВред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рдЖрд╕рд┐рдпреЛ :: рд╕реНрдЯреНрд░реИрдВрдб рд╣реИред рдЬреЛ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдРрд╕рд╛ рд╕рд╣рд╛рдпрдХ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рддрд░реНрдХ рд╕реЗ рдХреЙрд▓рдмреИрдХ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ; рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░реИрдВрдб рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд▓рд┐рдкрдЯреЗ рдереЗред рдпрд╣ рдПрдХ рдмрд╣реБрд╕реНрддрд░реАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрдиреАрд░ рдореБрдХреНрдд рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдмрд╛рдд рдпрд╣ рд╣реИ: рдЦреБрдж рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реНрдореЗрдВ рддрдерд╛рдХрдерд┐рдд
"рд╕реНрдЯреНрд░реИрдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ , рдФрд░ рд╕рдВрдХрд▓рди рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрд╡рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ, рдореНрдпреВрдЯреЗрдХреНрд╕-рдПрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдП, рдмреА, рд╕реА, рдФрд░ рд╕реНрдЯреНрд░реИрдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рдВрдЦреНрдпрд╛ 2 рд╣реИред рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛ рдСрдкрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдП, рддреЛ рддрдирд╛рд╡ рдЖрд╡рдВрдЯрди рдХреЗ рдХреНрд╖рдг рдореЗрдВ рдмреА рдФрд░ рд╕реА рдХрдиреЗрдХреНрд╢рди рдПрдХ рд╣реА рдореЗрдВ рдЧрд┐рд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреИрд╕реЗ рдПред рддрдм рдЙрдирдХреЗ рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдП рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рдХрдиреЗрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░ рдкрд░ рдПрдХ рд╕рд░рд▓ рдореНрдпреВрдЯреЗрдХреНрд╕ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХрддрд╛ рддреБрд░рдВрдд рдирд╣реАрдВ рдЖрдИ, рдФрд░ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ - рдЬрдм рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION рдФрд░ BOOST_ASIO_STRAND_IMOCEMENTATIONS рдбрд╛рд▓рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХрд╣реАрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░реИрдВрдб_ рд╕рд░реНрд╡рд┐рд╕ рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдмреЗрд╢рдХ, рдпрджрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рддреНрдп-рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП (рдЕрднреА рдХреЗ рд▓рд┐рдП) рдЖрдкрдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдмрдлрд╝рд░реНрд╕ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рд╣реИрдВред рдпрджрд┐ рдЖрдк asio :: streambuf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрдлрд╝рд░ рдореЗрдореЛрд░реА рджреЗрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд░реЗрдХреЙрд░реНрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдХреБрдЫ рд╣рдж рддрдХ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдореВрд▓ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд▓реЗрдЦрди рдмрдлрд░ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ IProto рдЬреИрд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА - рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрд░реНрде рд╣реИ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЫреЛрдЯреЗ рдкреИрдХреЗрдЯред рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдЖрд░рд╕реА рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрд╕рдПрд╕рдПрд▓ рдореЛрдб рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ async_write рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдВ рднреА!)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрддрд╛рд░, рдпрд╛ рдПрдХ рддрдВрддреНрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╛ рдмрд╕ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЙрд▓ рдХреЛ рд░реЛрдХрдирд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдлрд┐рд░ рд╕реЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ: рдпрджрд┐ рд╕рд╣рдХрд░реНрдореА рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЗрдЦрди рдмрдлрд╝рд░ рддрдм рддрдХ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╡рд░реНрддрдорд╛рди async_write рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рд╕рд╣рдХрд░реНрдореА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЖрдкрдХреА рд╕реНрдореГрддрд┐ рдХреЛ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЕрдзрд┐рдХрддрдо рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рд╢рд╛рдпрдж рдпрд╣ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрдереНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: 10 рд╣рдЬрд╛рд░ рдХрдиреЗрдХреНрд╢рди "рдЖрдЙрдЯ" рдХрд┐рд╕реА рднреА рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛ рдкрд░ 10 рд╣рдЬрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ "рдЖрдкрдХреЗ" рд▓реЛрдЧ рдЬрд╛рддреЗ рд╣реИрдВ ред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХрдард┐рдирд╛рдИ рд╣реИред рдпреЗ рд╡реЗ рд╡рд┐рдЪрд┐рддреНрд░ рдЧреНрд░рд╛рд╣рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрд╕рдПрд╕рдПрд▓ рд╣реИрдВрдбрд╢реЗрдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ 256 рдХреЗрдмреАрдкреАрдПрд╕ рдХреА рдЧрддрд┐ рд╕реЗ 40 рдПрдордмреА рдкрддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди APPEND рдХрдорд╛рдВрдб рдЕрдХреНрд╖рд░ рдХреЗ рд╢рд░реАрд░ рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ; рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдкрддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрдм рддрдХ рдЖрджреЗрд╢ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реНрдореГрддрд┐ рд░рдмрд░ рдирд╣реАрдВ рд╣реИред FETCH рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдкрд░реАрдд рд╕рдЪ рд╣реИ: рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд░рд┐рд╕реЗрдкреНрд╢рди рдХреА рдЧрддрд┐ рдзреАрдореА рд╣реИ рдФрд░ рдЖрдк 1 рдПрдордмреА рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдЖрдкрдХреА рдореЗрдореЛрд░реА рдореЗрдВ рддрдм рддрдХ рд╣реИ рдЬрдм рддрдХ рдЗрд╕реЗ рднреЗрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреА рд╕реЗрд╡рд╛ "рдмрд╛рд╣рд░" рджрд┐рдЦрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░рдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрд╕рд┐рдпреЛ рдХреА рддрд░рд╣ рд╕рд╛рдмрд┐рдд рд╣реБрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрд╛рдБ рдЖрдк рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рддреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ "рд▓рдбрд╝рд╛рдИ рдореЗрдВ" рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖, рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛рдПрдВрд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВред рд╕реЗрд╡рд╛ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреА, рдЕрдзрд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╕рдВрднрд╛рд▓рддреА рд╣реИ, рдмрд╣реБрдд рдХрдо рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддреА рд╣реИред
рд╕рд░реНрд╡рд░ рдХрд╛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ - рд╣рдо рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдИрдбреАрдПрд▓ рд╕рд╣рд┐рдд рдЖрд░рдПрдлрд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдврд╝рд╛рд╡рд╛ :: asio рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдореЗрдВ рдЗрд╕ рдХреЗ рд╕рд╛рде рдорджрдж рдорд┐рд▓реЗрдЧреАред рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЕрднреА рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрдИрдбреАрдПрд▓рдИ рд░рд╛рдЬреНрдп рдореЗрдВ рдХрд┐рддрдиреЗ рдХрдиреЗрдХреНрд╢рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ, рдмрд╣реБрдд рдХреБрдЫред рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЗрддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдореЛрдмрд╛рдЗрд▓ рдЧреНрд░рд╛рд╣рдХ (рдФрд░ рдЕрдм рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░) рдЖрдИрдбреАрдПрд▓рдИ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ asio рдкрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП IMAP рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рд╢реЛрдзрди рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдИ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдПрдВ рдЖ рд░рд╣реА рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╕рдВрджреАрджрд╛ IProto рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрдо рдЕрд╡рд░реЛрдзрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред
рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ? рдкреВрдЫреЛ! рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдиреБрднрд╡ рд╣реИ? рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ!
рдЕрд▓реНрдмрд░реНрдЯ рдЧреИрд▓рд┐рдореЛрд╡,
рдореЗрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдмреИрдХрдПрдВрдб рдЧреНрд░реБрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░