рдЧреНрд░реАрди рдХреЛрдб рдХреИрд╕реЗ рдмрдирд╛рдпреЗ

рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдКрд░реНрдЬрд╛ рджрдХреНрд╖рддрд╛ рдХреНрдпрд╛ рд╣реИ? рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдХрдо рдКрд░реНрдЬрд╛ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реБрдП рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред

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


рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрдврд╝реЗ рд╣реБрдП рдореЙрдбрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ 3 рдореБрдЦреНрдп рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред

рдмреИрдЯрд░реА


рдпрд╣ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдКрд░реНрдЬрд╛ рднрдВрдбрд╛рд░рдг рд╣реИред рдмреИрдЯрд░реА рдирд┐рд░реНрдорд╛рддрд╛ рд╣рд░ рд╕рд╛рд▓ рдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкреВрд░реНрдг рдЪрд╛рд░реНрдЬ рдХрд╛ рд╕рдордп рдХрдо рдХрд░рддреЗ рд╣реИрдВред

рд▓реЛрд╣рд╛


рдпрд╣ рдКрд░реНрдЬрд╛ рдХрд╛ рдореБрдЦреНрдп рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрднреЛрдХреНрддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдкреНрд░рдЧрддрд┐ рднреА рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред "рд▓реЛрд╣реЗ" рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдКрд░реНрдЬрд╛-рдХреБрд╢рд▓ рдЪрд┐рдкреНрд╕ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЦрдкрдд рдкреНрд░рддрд┐ рд╡рд╛рдЯ рдКрд░реНрдЬрд╛ рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рджреЗрддреЗ рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдЬрд▓реА рдореЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкреНрд░рдпреБрдХреНрдд рд▓реЛрд╣реЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдХрдо рдмрд┐рдЬрд▓реА рдореЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдмреИрдЯрд░реА рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред

рдореБрд▓рд╛рдпрдо


рдпрд╣ рдКрд░реНрдЬрд╛ рдХрд╛ рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрднреЛрдХреНрддрд╛ рд╣реИред рдкреНрд░рддреНрдпрдХреНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреБрдЫ рднреА рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд▓реЛрд╣реЗ рдХреЛ рдКрд░реНрдЬрд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдмреИрдЯрд░реА рдЬреАрд╡рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реАрдХреЗ рднреА рд╣реИрдВред рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдКрд░реНрдЬрд╛-рджрдХреНрд╖рддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдКрд░реНрдЬрд╛ рдХреА рдЦрдкрдд рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдЕрдЧрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рд╡рд╣ рд▓реЛрд╣реЗ рдХреЛ "рд╕реЛрдиреЗ" рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдКрд░реНрдЬрд╛ рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдкреНрд░реЛрд╕реЗрд╕рд░ред

рдкреНрд░реЛрд╕реЗрд╕рд░ рддрдерд╛рдХрдерд┐рдд рд╕реА-рд╕реНрдЯреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ рдЗрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдВрджрд░реНрдн рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

C0 - рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐, рд╡рд┐рднрд┐рдиреНрди P-рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред
рд╕реА 1 - рдПрдХ рд░рд╛рдЬреНрдп рдЬрдм рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рджреЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЗрд╕ рд░рд╛рдЬреНрдп рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд░реВрдк рд╣реИрдВред
C2 рд▓рдЧрднрдЧ C1 рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рд╡рд┐рд▓рдВрдм рд╣реЛрддрд╛ рд╣реИред
рд╕реА 3 - "рд╕реНрд▓реАрдк" рдХреА рд╕реНрдерд┐рддрд┐, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЧреБрдЬрд░рддреЗ рд╣реБрдП, рдкреНрд░реЛрд╕реЗрд╕рд░ рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд, рдФрд░ рдХрд╛рдо рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рд╕рдВрдХреНрд░рдордг рд╕рдордп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

... рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд╛рдВрдд рджреВрдВрдЧрд╛:



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

рдпрд╣ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕реЛрдирд╛ рдФрд░ рдЬрд╛рдЧрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рдШрдЯрддреА рд╣реИред

рдИрд╡реЗрдВрдЯ рдирд┐рдпрдо рдпрд╛ рдИрд╡реЗрдВрдЯ-рдЪрд╛рд▓рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг


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

while(true) { //   result = recv(serverSocket, buffer, bufferLen, 0); //    if(result != 0) { HandleData(buffer); } //     Sleep(1000); } 

рдпрд╣рд╛рдБ "рдЧрд▓рдд" рдХреНрдпрд╛ рд╣реИ? рдбреЗрдЯрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдбреЗрдЯрд╛, рдХреЛрдб рд╣рд░ 1000 рдПрдордПрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ "рдЬрд╛рдЧ" рд╣реЛрдЧрд╛ред рдХреЛрдб рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╢реНрд░реЗрдХ рдХреЗ рдПрдХ рдЧрдзреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: тАЬрдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЕрдм рдпрд╣рд╛рдБ рд╣реИрдВ? рдХреНрдпрд╛ рдЕрдм рдЖрдк рдпрд╣рд╛рдБ рд╣реИрдВ? тАЭ

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

 WSANETWORKEVENTS NetworkEvents; WSAEVENT wsaSocketEvent; wsaSocketEvent = WSACreateEvent(); WSAEventSelect(serverSocket, wsaSocketEvent, FD_READ|FD_CLOSE); while(true) { //      -      WaitForSingleObject(wsaSocketEvent, INFINITE); //  ? WSAEnumNetworkEvents(m_hServerSocket, wsaSocketEvent, &NetworkEvents); //    if(NetworkEvents.lNetworkEvents & FD_READ) { // ,  WSARecvFrom(serverSocket, &buffer, ...); } } 


рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреА рд╕реБрдВрджрд░рддрд╛ рдХреНрдпрд╛ рд╣реИ? рд╡рд╣ рддрдм рд╕реЛрдПрдЧрд╛ рдЬрдм рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЯрд╛рдЗрдорд░, рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рдЕрд▓рд╛рд░реНрдо


рдХрднреА-рдХрднреА рдЖрдк рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ - рдСрдбрд┐рдпреЛ, рд╡реАрдбрд┐рдпреЛ, рдПрдиреАрдореЗрд╢рди рдЦреЗрд▓рдирд╛ред

рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдорд░ рдЕрдВрддрд░рд╛рд▓ 15.6 рдПрдордПрд╕ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрд╡реЗрджрди рд╣рд░ 40 рдПрдордПрд╕ рд╕реЗ рдКрдкрд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗред 15.6 рдПрдордПрд╕ рдкрд╛рд╕ рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдВрддрд░рд╛рд▓, рдмрд╣реБрдд рдХрдо, рджреВрд╕рд░рд╛ рдкрд╛рд╕ 31.1, рдлрд┐рд░ рд╕реЗ рдЬрд▓реНрджреА, рддреАрд╕рд░рд╛ 46.8 - рд╣рд┐рдЯ, рдЯрд╛рдЗрдорд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 6.8 рдПрдордПрд╕ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

рдиреАрдВрдж рдкрд░ рднреА рд╕реАрдзрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдк 15.6 рдПрдордПрд╕ рдХреЗ рд╕реЗрдЯ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдиреАрдВрдж (1) рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб 1 рдПрдордПрд╕ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рднреА 15.6 рдПрдордПрд╕ рд╕реЛ рдЬрд╛рдПрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ API - timeBeginPeriod рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдорд░ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рдЯрд╛рдЗрдорд░ рдЕрд╡рдзрд┐ рдХреЛ 1ms рддрдХ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдЯрд░реА рдЬреАрд╡рди (25% рддрдХ) рдХреЛ рдмрд╣реБрдд рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рд╕рдордЭреМрддрд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ? рд╕рднреА рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдорд░ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдмрджрд▓рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдРрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХрдо рдЯрд╛рдЗрдорд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдПрдиреАрдореЗрд╢рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЯрд╛рдЗрдорд░ рдмрджрд▓ рджреЗрдВ рдФрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛ рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдПрдиреАрдореЗрд╢рди рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЯрд╛рдЗрдорд░ рдПрд╕реЛрд╕рд┐рдПрд╢рди


рд╡рд┐рдВрдбреЛрдЬ 7 рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдпрд╛рдиреА рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрдорд░реНрд╕ рдХреЛ "рдПрдбрдЬрд╕реНрдЯ" рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдПрдВред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

 BOOL WINAPI SetWaitableTimerEx( __in HANDLE hTimer, __in const LARGE_INTEGER *lpDueTime, __in LONG lPeriod, __in_opt PTIMERAPCROUTINE pfnCompletionRoutine, __in_opt LPVOID lpArgToCompletionRoutine, __in_opt PREASON_CONTEXT WakeContext, __in ULONG TolerableDelay ); 


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

рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдорд░, рдЯрд╛рдЗрдорд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди, рдФрд░ рдХреБрд╢рд▓ рдХреЛрдб рдХрд╛ рд╡рд┐рдХрд╛рд╕ рджреЗрдЦреЗрдВ

рдпрд╣ рдЙрдкрд╡рд╛рд╕ рдХрд░реЛ


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

рдорд╛рдирд╛ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдХрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдКрд░реНрдЬрд╛-рдХреБрд╢рд▓ рд╣реИ, рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреИрд╕реЗ рдХрд░реЗрдВ? рдмрд╣реБрдд рд╕рд░рд▓ - рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдКрд░реНрдЬрд╛ рджрдХреНрд╖рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг


1. рдЗрдВрдЯреЗрд▓ рдкрд╛рд╡рд░ рдЪреЗрдХрд░ ред рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдКрд░реНрдЬрд╛ рджрдХреНрд╖рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИред



рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдФрд░ рд╡рд┐рд╡рд░рдг рдЖрдИрдПрд╕рдПрди рдмреНрд▓реЙрдЧ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

2. рдЗрдВрдЯреЗрд▓ рдмреИрдЯрд░реА рд▓рд╛рдЗрдл рд╡рд┐рд╢реНрд▓реЗрд╖рдХ



рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдЙрдкрдХрд░рдг, рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЛрд╣реЗ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рд╡рд┐рднрд┐рдиреНрди рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдмреИрдЯрд░реА рдЬреАрд╡рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

3. рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЬреВрд▓рдореАрдЯрд░



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдордВрдЪ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреА рдКрд░реНрдЬрд╛ рдЦрдкрдд рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рдЯреНрд╕рдЕрдк рд╡рд╛рдЯрдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдХрд╣рд╛рдВ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ



рдЗрдВрдЯреЗрд▓-рдкрд╛рд╡рд░ рджрдХреНрд╖рддрд╛ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд▓реЗрдЦ, рдКрд░реНрдЬрд╛ рдХреБрд╢рд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ, рдФрд░ рдЯрд┐рдкреНрд╕ред

рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕реЗ рд▓реЗрдЦ рдФрд░ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХрд╛ рдмреИрдЯрд░реА рдЬреАрд╡рди рдФрд░ рдКрд░реНрдЬрд╛ рджрдХреНрд╖рддрд╛ рд╕рдВрдЧреНрд░рд╣

рдЯрд╛рдЗрдорд░, рдЯрд╛рдЗрдорд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдСрдлрд╝ рдПрдлрд┐рд╢рд┐рдПрдВрд╕реА рдХреЛрдб рд▓рд┐рдВрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдВрдд рд╕реЗ рд▓реЗрдЦ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреВрдЫреЗрдВред рдЖрдк рд╡реЗрдмрд┐рдирд╛рд░ рдкрд░ "рдЧреНрд░реАрди" рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдореБрдЭрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рднреА рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХрд▓, 15 рджрд┐рд╕рдВрдмрд░ рдХреЛ рд╕реБрдмрд╣ 11 рдмрдЬреЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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


All Articles