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

рдпрд╣ рдХреНрдпрд╛ рд╣реИ
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рдХрд┐ рдХрд╣рддрд╛ рд╣реИ, рдПрдХ рд╕реЙрдХреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реВрдЪрдирд╛ рд╡рд┐рдирд┐рдордп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рд╛рд░ рдХреЛ рд╕рдордЭрдирд╛ рдЬреНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рд╕рд░рд▓ рд╕рдм рдХреБрдЫ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЙрдХреЗрдЯ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕реЙрдХреЗрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдХрдИ рдЫреЛрдЯреЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реЗ рдХрдорд░реЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкреАрдЫреЗ рд▓рдбрд╝рдХрд┐рдпрд╛рдВ рдЦрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рдЦрд╛рд▓реА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рднреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд╣реАрдВ рд╣реИред рд╡реЗ рдмрд╣реБрдд рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИрдВред рдЬрд╣рд╛рдВ рд▓рдбрд╝рдХреА рд╣реИ, рдпрд╣ рдПрдХ рдЦреБрд▓рд╛ рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреАрдЫреЗ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ рдЙрд╕реЗ рд╕реБрдирддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк 9090 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХреА рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрдзрд╛рдИ рджреА рдЬрд╛рдПрдЧреА рдФрд░ рдкреВрдЫрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдпрд╣ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╣реИред рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдкрд░ рд╕реБрдирддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕ рдкреЛрд░реНрдЯ рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред рдЖрдк рдПрдХ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдирд╣реАрдВ рдЖрдПрдВрдЧреЗ, рдФрд░ рд╡реЗ рдПрдХ рдкрдбрд╝реЛрд╕реА рд╕реЗ рдЖрдкрдХреЛ рдЪрд┐рд▓реНрд▓рд╛рдПрдВрдЧреЗ :)
рдПрдХ рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдПрдХ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░реАрдЯрд┐рдВрдЧ рдФрд░ рдПрдХ рдкреНрд░рд╛рдВрдкреНрдЯ рднреЗрдЬрддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░
рдЕрдм рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВ - рдПрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдПред
рдЕрдЬрдЧрд░ рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
import socket
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдХ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
sock = socket.socket()
рдпрд╣рд╛рдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЙрдХреЗрдЯ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЖрдЧреЗ рд╣рдо рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗред рдпрд╣ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИ - рдЕрдЧрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИ рддреЛ рд╣рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрдпреЛрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП :)
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдФрд░ рдкреЛрд░реНрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП - рд╣рдо рд▓рд╛рдЗрди рдХреЛ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рд░реНрд╡рд░ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реЛред рдФрд░ рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ 65535 рддрдХ рд▓реЗ рдЬрд╛рдПрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдВрдЦреНрдпрд╛ 0 - 1023 рдХреЗ рд╕рд╛рде рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдкреЛрд░реНрдЯ 9090 рдХреЛ рдЪреБрдирд╛ред рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реЙрдХреЗрдЯ рдХреЛ рджрд┐рдП рдЧрдП рд╣реЛрд╕реНрдЯ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдВрдб рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЯрдкрд▓ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓рд╛ рддрддреНрд╡ (рдпрд╛ рд╢реВрдиреНрдп, рдпрджрд┐ рд╣рдо рд╢реВрдиреНрдп рд╕реЗ рдЧрд┐рдирддреЗ рд╣реИрдВ) рд╣реЛрд╕реНрдЯ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреЛрд░реНрдЯ рд╣реИред
sock.bind(('', 9090))
рдЕрдм рд╣рдо рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рддреИрдпрд╛рд░ рд╣реИрдВред рд╕реБрдиреЛ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рдПрдХ рддрд░реНрдХ рд▓реЗрддреА рд╣реИ - рдХрддрд╛рд░ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред рд╣рдо рдЕрдкрдиреА рдЬрдВрдЧрд▓реА рдХрд▓реНрдкрдирд╛ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рдФрд░ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЙрд▓ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХрддрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдкрд░ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдмрд╣реБрдд рд╣реА рдХрдо рд╣реИ, рдлрд┐рд░ рднреА рдкреАрда рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╡реЗ рдЗрд╕реЗ рднреЗрдЬ рджреЗрдВрдЧреЗ :) рдЗрд╕реЗ рдПрдХ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
sock.listen(1)
рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рд╕реНрд╡реАрдХрд╛рд░ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ: рдПрдХ рдирдпрд╛ рд╕реЙрдХреЗрдЯ рдФрд░ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкрддрд╛ред рдпрд╣ рд╕реЙрдХреЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
conn, addr = sock.accept()
рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм рд╣рдордиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдЙрд╕рдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рд╣рдореЗрдВ рдХрд┐рди рдФрд░ рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднреЗрдЬреЗрдЧрд╛, рддрдм рд╣рдо рдЙрд╕рд╕реЗ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ recv рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИред рд╣рдо 1024 рдмрд╛рдЗрдЯреНрд╕ (рдпрд╛ 1 рдХреЗрдмреА) рдХреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдкрдврд╝реЗрдВрдЧреЗ:
while True: data = conn.recv(1024) if not data: break conn.send(data.upper())
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдерд╛, рд╣рдо рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдкрджреНрдзрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ, рд╣рдо recv рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 1024 рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬреЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░ рдКрдкрд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдВред
рдЕрдм рдЖрдк рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
conn.close()
рджрд░рдЕрд╕рд▓ рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ :) рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЧреНрд░рд╛рд╣рдХ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ рд╕рд░рд▓ рд╣реИ - рд╣рдореЗрдВ рдПрдХ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдиреЗ, рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ, рдЙрд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдирдИ рдЪреАрдЬ рдХрдиреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо 1024 рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕реЙрдХреЗрдЯ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред