рдкрд╛рд░рдЧрдорди рдкреБрд╕реНрддрдХрд╛рд▓рдп 4: рдкрд░рд┐рдЪрдп

C ++ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд┐рд░реНрдл рдПрдХ, рджреЛ, рддреАрди рд╣реИред
network n = OpenNetwork(); connection c = n.OpenConnection("habrahabr.ru", 80); html_request h("GET", "/"); c << h; c.WaitForMessage(); n.Response(); std::cout << c; 



рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп Kravravites, рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ 4 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрд░реА рд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЗрд░реЗ рдЬреАрд╡рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХрд╛рд░рдгреЛрдВ, рд╣рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред

рдореИрдВ рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдХрд╛рдо рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рд╣реЛ, рд▓реЗрдХрд┐рди рди рддреЛ рд╕реГрдЬрди рдХреЗ рд╕рдордп, рди рд╣реА рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рдордп рдореИрдВ рдЙрди рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХреЛ рдкрд╛ рд╕рдХрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рд╕рдХреЗред

рдХрд╣рд╛рдиреА


рд╢реБрд░реБрдЖрдд

рдпрд╣ рд╕рдм 2008 рдореЗрдВ, рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд╢реБрд░реВ рд╣реБрдЖред рд╣рдо рд╕рд┐рд░реНрдл winsock рд╕реЗ рдЧреБрдЬрд░реЗ, рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╢рд┐рдХреНрд╖рдХ рдиреЗ рдореБрдЭреЗ рдорд╣рддреНрд╡рд╣реАрди рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдореВрд░реНрдЦ рдерд╛, рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдерд╛ред
рдореИрдВ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ рд╕реЗ рднреА рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдерд╛, рдФрд░ рддреБрд░рдВрдд рдкреВрд░реА рдмрд╛рдд рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ c ++ рддрдм рдирд╣реАрдВ рдкрддрд╛ рдерд╛, рдФрд░ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ (рдЕрдм рдЦреЛ рдЧрдпрд╛) рдерд╛ред

рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореИрдВ рджреЗрд╢реА winsock рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд░ рдЪрд▓рд╛ рдЧрдпрд╛, рд╕рдВрдЪрд╛рд░ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛ред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдХрдиреЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕реЙрдХреЗрдЯ рддреБрд░рдВрдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдбреАрдПрдирдПрд╕ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛)ред рдзреАрд░реЗ-рдзреАрд░реЗ, рдпрд╣ рдЗрддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдЦреЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдкреНрд░рд╛рдЪреАрди рдХрдерд╛

рдЯреАрдПрд▓ 2 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реЛ, рдФрд░ рднрдЧрд╡рд╛рди рдиреЗ рдХреЛрдб рдХреА 300 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ - рдПрдХ рдХрдиреЗрдХреНрд╢рди (рдЪреИрдЯ, рдмрдирд╛рд╡рдЯ, рд╕рдВрдЧреАрдд) рдореЗрдВ рдХрдИ рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред рдпрд╣ рдЗрд╕ рд╕реЗ рд╣реИ рдХрд┐ рдкреНрд░рдЧрддрд┐ рд╕реНрд╡рдпрдВ рд╢реБрд░реВ рд╣реБрдИред рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдЗрд╖реНрдЯрддрдо рдкреИрдХреЗрдЯ рд╡рд┐рднрд╛рдЬрди, рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред рдирддреАрдЬрддрди, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдиреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛, рд╕рд╛рде рдореЗрдВ 255 "рд╕рдВрджреЗрд╢" рддрдХ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХрддрдо 4 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдордиреЗ рдХрднреА рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд░рд┐рд╕рд╛рд╡, рдкрд░реЛрдкрдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЦреЗрд▓ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ред рд╣рд╛рдВ, рдФрд░ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

TL4

рдЕрдЧрд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ C ++ рдФрд░ рдирдП рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдП рдЪрд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдерд╛ред
рдЕрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдореЛрдб рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЧрдИ рд╣реИ - рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдкреНрд░реЙрдХреНрд╕реА рдпрд╛ рдкреА 2 рдкреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрддрдо рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдирдВрдд рддрдХ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 2 ^ 32 (рдЬрдмрдХрд┐ 255 рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреА рд╣реИ) рддрдХ рд╣реИред рдСрдЯреЛ-рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдЦрд╛рдИ рджреАред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реЛ рдЧрдИ, рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдХрдИ рдмрд╛рд░ рдореБрдЦреНрдп рдереНрд░реЗрдб рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЯреАрдПрд▓ 2 рдореЗрдВ 443 рдПрдордПрд╕ рдорд┐рд▓рд╛, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдШрдЯрдХрд░ 17 рдПрдордПрд╕ рдЯреАрдПрд▓ 4 рд╣реЛ рдЧрдИ)ред
рдЬреЛрдбрд╝рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди, рд╕рдВрдкреАрдбрд╝рди, рдЖрджрд┐, рд╕реВрдЪреА рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп


рдордВрдЪ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП - рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд (рдлрд╝рд╛рдЗрд▓, рд╕рд░рдгреА, рдЕрдиреНрдп рдХрдиреЗрдХреНрд╢рди) рд╕реЗ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХрд┐рддрдиреА рдмрд╛рд░ рдмрд╛рдзрд┐рдд рд╣реБрдЖ рд╣реИ, рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рд░реНрд╡рд░ рдХреЛ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛, рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ, рдСрдирд▓рд╛рдЗрди рд╕рдордп, рдФрд╕рдд рдЧрддрд┐ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рд╣рдЬ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг "PROXY"


 #include <tl4/def.h> using namespace ax::tl4; bool proxy( connection &c, message &m ) { std::string s; s << m; //   host:pass,   connection nc = c.GetNetwork().OpenConnection(s); nc << s; nc << c; nc >> c; return true; } void main() { network n = OpenNetwork(); port p = n.OpenPort(8080); p.NonTL4Compatible(true); p.OnOpenConnection(proxy); while (1) n.Response(); } 

рдмреЗрд╢рдХ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рдХреНрд░ (рдЬрдм рд╕рдВрджреЗрд╢ рдХреЛ std :: string рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рддрдм рддрдХ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ 0 рдпрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ), рд▓реЗрдХрд┐рди рд╕рд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдЕрд╡рд╕рд░реЛрдВ




рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдП рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдпред рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП, рд╣реИрдВрдбрд▓рд░ рдХреА рдПрдХ рдХрддрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдордХреНрдЦреА рдкрд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рд╣реИрдВрдбрд▓рд░ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - рдПрдирдХреЛрдб рдФрд░ рдбрд┐рдХреЛрдбред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди / рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЛрдб, рдХрдореНрдкреНрд░реЗрд╢рди / рдбрд┐рдХрдореНрдкреНрд░реЗрд╕рди рдХреЛрдб рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╣реИрдВрдбрд▓рд░ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдмрд╕ рдЯреЗрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рдж рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдкрдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рднреА рдпрд╣реА рд╣реИ - рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рдзрд╛рд░рд╛

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреЛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рд░рдгреА, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдлрд╝рд╛рдЗрд▓ рд╕рднреА рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред рдПрдХ рдЪрд░ рдФрд░ рдПрдХ рдЗрдирдмрд╛рдЙрдВрдб рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреАред
рд╕реНрдЯреНрд░реАрдо рдХреНрд▓рд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рднреМрддрд┐рдХ рд╕реНрд░реЛрдд рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Stl рдХреЗ рд╕рдорд╛рди рдХреБрдЫ :: рдзрд╛рд░рд╛ рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рдеред

рдкрд╛рдЗрдк

рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рд╣рдо рдПрдХ рдбрд┐рд╕реНрдХ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, bmp-> jpg, рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд░рдЦрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдкрд░рдорд╛рдгреБ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ (рдкрд╛рдиреА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд╕рд╛рде рдзрд░реНрдорд╢рд╛рд╕реНрддреНрд░ - рдкрд╛рдЗрдк рдмрдЯ рд╕реЗ рдмрдЯ рддрдХ рдЬрд╛рддреЗ рд╣реИрдВ)ред
 pipe *ImageTransferPipe( std::string filename ) { pipe_constructor c; c.add(new BMP2JPG()); c.add(new BlowFishCrypt()); pipe p(c); return p.GetScheme().Source(new read_file_stream(filename)); } 

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдкреА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ:
 connection::SetHandler( pipe * ) 

рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░реЗрдЧреА, рдФрд░ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ (рдкрд╛рдЗрдк :: GetInverseScheme) рд╕реЗ рднреА рдЧреБрдЬрд░реЗрдЧреАред

рдПрдХ рд╕рд╛рде рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛

рд╡рд┐рдЪрд╛рд░ рджрд░реНрджрдирд╛рдХ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ 255 рдмрд╛рдЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрди рдмреНрд▓реЙрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЪрдХреНрд░реАрдп рд░реВрдк рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкрд╣рд▓рд╛ рджреВрд╕рд░рд╛ рддреАрд╕рд░рд╛ рдкрд╣рд▓рд╛ рддреАрд╕рд░рд╛ред
рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдмреНрд▓реЙрдХ рд╣рдореЗрд╢рд╛ 255 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдмреНрд▓реЙрдХ рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ рдЕрдЪрд╛рдирдХ рд╡рд╕реНрддреБ рдХрд╛ рдЕрдЧрд▓рд╛ рднрд╛рдЧ "рддреИрдпрд╛рд░ рдирд╣реАрдВ" (рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ) рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдХреЗ рдмрджрд▓реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрддрд╛рд░ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рд╕рд┐рд╕реНрдЯрдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдирд┐рдпрдорд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рд╕рдВрджреЗрд╢

рд╡реЗ рдХрдИ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдЪрд╛рд░рдг рдкрдХреНрд╖ рд╕рдХреНрд░рд┐рдп-рдирд┐рд╖реНрдХреНрд░рд┐рдп рдШреБрдорд╛рд╡ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд╡рд╕реНрддреБ рдХреЗ рдЕрдВрдд рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ, рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, "рдирд┐рдореНрди-рд╕реНрддрд░" рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг, рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдорд╢реАрди рд╕рд┐рдВрдХ

рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рджреЛрдиреЛрдВ рд╕рд┐рд░реЛрдВ рдкрд░ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░рдг, рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрди рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрдЬрдмрд╛рди рдЕрдкрдиреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╕рд╛рде рд╡рд┐рдирд┐рдордп рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдФрд╕рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реЗ рдЗрд╕реЗ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд░рдирд╛ рднреА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рджреЛрдиреЛрдВ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рд╕рд░реНрд╡рд░ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рдкрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдореБрдЭреЗ рд╕рдордЭреЗрдВрдЧреЗред рджреБрд╢реНрдорди рдХреЛ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреБрдЫ рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рд╕реЗ рдкрд╣рд▓реЗ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рд╕рдмред
рдЕрдм рдПрдХ рдРрд╕реЗ рдЦреЗрд▓ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЗрд╡реЗрдВрдЯреНрд╕ рдЖрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╡рд░реНрддреА рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╕рдордп, рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рджреЗрд░реА рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдиреБрдорд╛рдирд┐рдд рдЖрдЧрдорди рд╕рдордп рдмрд░рд╛рдмрд░ рд╣реЛ, рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП (рд╡рд╛рдпрд░реНрдб рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП 10ms рд╕реЗ рдХрдо рддреНрд░реБрдЯрд┐)ред

рдпрд╣ рдкреЛрд╕реНрдЯ рдХреНрдпреЛрдВ?


рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдирд┐рдпреЛрдЬрд┐рдд рдХрдиреЗрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЪреЗрдХ рд░рд╛рд╢рд┐, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрднреА рднреА рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореИрдВ рдкреНрд░рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдПрдирд╛рд▓реЙрдЧреНрд╕ рд╣реИрдВ (рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЪреЛрд░реА рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ), рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, (рдпрджрд┐ рдпрд╣ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ) рдФрд░ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдРрд╕реЗ рдореЗрдВ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рдгрд╛рд▓реАред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдорд╛рдлреА

рдореИрдВ рдЕрдкрдиреА рдкреНрд░рд╕реНрддреБрддрд┐, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред рдХрдо рдХрд░реНрдо рдХреЗ рдХрд╛рд░рдг рдореИрдВ "I am PR" рдЯреИрдЧ рдирд╣реАрдВ рдЬреЛрдбрд╝ рдкрд╛рдпрд╛ред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрд░реНрде, рдореИрдВ рд╢рд╛рдпрдж рдпрд╣ рдХрд░рддрд╛ рд╣реВрдВред

UPD: рдЬрд╛рд░реА рд╣реИ

Source: https://habr.com/ru/post/In151812/


All Articles