рдирд╛рдЯрдХ "рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ред" рднрд╛рдЧ 2: рдпрд╣ рднрдпрд╛рдирдХ рд╢рдмреНрдж рд╣реИ "рдкреНрд░реЛрдЯреЛрдХреЙрд▓"



рднрд╛рдЧ 1: рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рднрд╛рдЧ 3: рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди
рднрд╛рдЧ 4: 3 рдбреА рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

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



рднрд╛рдЧ рджреЛ рдПрдХ рдХрджрдо: рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред



рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдмрд╛рдК рдкрд╛рдардХреЛрдВ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рднреВрдХрдВрдк, рдПрд╕рд╕реА рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рдФрд░ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ "рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдирд╛рдирд╛", рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдкреЗрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢реИрддрд╛рди рдЙрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ ...

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

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

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

рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣рд╛рдВ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рдЦреБрдж рдХреА рдЖрд░рд╛рдорджрд╛рдпрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдмрдирд╛рдПрдВрдЧреЗред

рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ рд╕рдВрджреЗрд╢
1. рдкреНрд░рд╛рдзрд┐рдХрд░рдг (рд▓реЙрдЧрд┐рди)
2. рдЪрд▓рддреЗ рд╕рдордп рдЯреИрдВрдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x, y)
3. рд╢реЙрдЯ (x, y), рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬрд╣рд╛рдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдЧреЛрд▓реАрдмрд╛рд░реА рдХреА, рд╕рд░реНрд╡рд░ рдкрд░ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╣рд┐рдЯ рдерд╛
4. рдЯреАрдо рд╕рд░реНрд╡рд░ рдкрд░ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ
5. рдЯреАрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ

рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ рд╕рдВрджреЗрд╢
1. рдкреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
2. рджреБрд╢реНрдорди рдЯреИрдВрдХ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ (рдЬреАрд╡рд┐рдд / рдорд╛рд░рд╛), (x, y, s) рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
3. рдЯреАрдо "рд╣рдореЗрдВ рдорд╛рд░рд╛"
4. рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
5. рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╡рд┐рдпреЛрдЧ

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рд╕рднреА рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЛ 7 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдлрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



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

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

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рд╣реЛрдЧрд╛ред

рднрд╛рдЧ рджреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рджреЛ: рдЯреАрд╕реАрдкреА рд╕рд░реНрд╡рд░ред



рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реНрдЯрдм рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
1. рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛
2. рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдЖрдИрдбреА рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛

рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдПрдХ рд╕реНрдХреИрд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛

def main(args: Array[ String ]): Unit =
{
val port = 7777

try
{
val listener = new ServerSocket(port)
var numClients = 1

println( "Listening on port " + port)

while ( true )
{
new ClientHandler(listener.accept(), numClients).start()
numClients += 1
}

listener.close()
}
catch
{
case e: IOException =>
System.err.println( "Could not listen on port: " + port + "." )
System.exit(-1)
}
}


* This source code was highlighted with Source Code Highlighter .
def main(args: Array[ String ]): Unit =
{
val port = 7777

try
{
val listener = new ServerSocket(port)
var numClients = 1

println( "Listening on port " + port)

while ( true )
{
new ClientHandler(listener.accept(), numClients).start()
numClients += 1
}

listener.close()
}
catch
{
case e: IOException =>
System.err.println( "Could not listen on port: " + port + "." )
System.exit(-1)
}
}


* This source code was highlighted with Source Code Highlighter .


рдФрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░ред

class ClientHandler (socket : Socket, clientId : Int) extends Actor
{
def act
{
try
{
val out = new PrintWriter( socket.getOutputStream(), true )
val in = new BufferedReader( new InputStreamReader(socket.getInputStream()) )

print( "Client connected from " + socket.getInetAddress() + ":" + socket.getPort )
println( " assigning id " + clientId)

var inputLine = in .readLine()
while (inputLine != null )
{
println(clientId + ") " + inputLine)

inputLine = in .readLine()
}

socket.close()

println( "Client " + clientId + " exit" )
}
catch
{
case e: SocketException => System.err.println(e)

case e: IOException => System.err.println(e.getMessage)

case e => System.err.println( "Unknown error " + e)
}
}
}


* This source code was highlighted with Source Code Highlighter .
class ClientHandler (socket : Socket, clientId : Int) extends Actor
{
def act
{
try
{
val out = new PrintWriter( socket.getOutputStream(), true )
val in = new BufferedReader( new InputStreamReader(socket.getInputStream()) )

print( "Client connected from " + socket.getInetAddress() + ":" + socket.getPort )
println( " assigning id " + clientId)

var inputLine = in .readLine()
while (inputLine != null )
{
println(clientId + ") " + inputLine)

inputLine = in .readLine()
}

socket.close()

println( "Client " + clientId + " exit" )
}
catch
{
case e: SocketException => System.err.println(e)

case e: IOException => System.err.println(e.getMessage)

case e => System.err.println( "Unknown error " + e)
}
}
}


* This source code was highlighted with Source Code Highlighter .


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

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдЕрдиреБрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рд╡рд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

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

рднрд╛рдЧ рджреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рддреАрди: рдЧреНрд░рд╛рд╣рдХред



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

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рднреА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

public class Main extends Sprite
{
public var socket:Socket = new Socket();

public var host: String = "127.0.0.1" ;
public var port: int = 7777;

public var status:TextField = new TextField();

public function Main(): void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null ): void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point

status.text = "Player" ;
addChild( status );

socket.addEventListener(Event.CONNECT, socketConnectHandler);
socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
socket.addEventListener(DataEvent.DATA, dataHandler);

socket.connect(host, port);
}


//
private function socketConnectHandler(e:Event): void
{
status.text = "Player - connectrd" ;
}

//
private function ioErrorHandler(e:IOErrorEvent): void
{
status.text = "Player - error" ;
}

//
private function dataHandler(e:DataEvent): void
{
switch (e.data)
{
//
}
}

//
public function sendMessage(val: String ): void {
if (val != "" && socket.connected)
{
//socket.writeBytes( val);
}
}

public function exitGame(): void
{
if (socket.connected)
{
socket.close();
}
}

}


* This source code was highlighted with Source Code Highlighter .
public class Main extends Sprite
{
public var socket:Socket = new Socket();

public var host: String = "127.0.0.1" ;
public var port: int = 7777;

public var status:TextField = new TextField();

public function Main(): void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null ): void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point

status.text = "Player" ;
addChild( status );

socket.addEventListener(Event.CONNECT, socketConnectHandler);
socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
socket.addEventListener(DataEvent.DATA, dataHandler);

socket.connect(host, port);
}


//
private function socketConnectHandler(e:Event): void
{
status.text = "Player - connectrd" ;
}

//
private function ioErrorHandler(e:IOErrorEvent): void
{
status.text = "Player - error" ;
}

//
private function dataHandler(e:DataEvent): void
{
switch (e.data)
{
//
}
}

//
public function sendMessage(val: String ): void {
if (val != "" && socket.connected)
{
//socket.writeBytes( val);
}
}

public function exitGame(): void
{
if (socket.connected)
{
socket.close();
}
}

}


* This source code was highlighted with Source Code Highlighter .


рддреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдкрд╣рд▓рд╛ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред
рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ... рдФрд░ рд╡реЙрдпрд▓рд╛ ...

рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдкрд░рд┐рдгрд╛рдо



рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рд╕рд░реНрд╡рд░ рдкрд░рд┐рдгрд╛рдо



рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 7777 рдкрд░ рд╢реБрд░реВ рд╣реБрдЖ, рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЖрдИрдбреА рджрд┐рдпрд╛ред

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

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЬреАрдердм рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

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

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


All Articles