Go āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻļāĻŋāĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĨ¤ āĻ…āĻ‚āĻļ 1

āĻ†āĻŽāĻŋ āĻāĻ–āĻ¨ āĻšāĻžāĻ° āĻŽāĻžāĻ¸ āĻ§āĻ°ā§‡ "āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¸āĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻļāĻŋāĻ˛ā§āĻĒ āĻ–āĻžāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻ•āĻžāĻļ" āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›āĻŋāĨ¤
āĻāĻ–āĻ¨ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ†āĻŽāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ•ā§‹āĻĄ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻŦāĨ¤

Go āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻļāĻŋāĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĨ¤ āĻ…āĻ‚āĻļ 1

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻ¸āĻ˛ā§‡, āĻĒāĻžāĻ āĻ• āĻāĻŽāĻ¨āĻ•āĻŋ āĻāĻ‡ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻāĻŦāĻ‚ āĻāĻ–āĻžāĻ¨ā§‡ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ…āĻ‚āĻļ — āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡āĨ¤

āĻ—āĻ¤ āĻŦāĻ›āĻ°, āĻĄāĻŋāĻœāĻŋāĻŸāĻžāĻ˛ āĻŦā§āĻ°ā§‡āĻ•āĻĨā§āĻ°ā§ āĻšā§āĻ¯āĻžāĻ•āĻžāĻĨāĻ¨ā§‡, āĻ¤āĻžāĻ°āĻž āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ˛ā§‡āĻœāĻžāĻ° āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻļāĻŋāĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻĄāĻŋāĻœāĻŋāĻŸāĻžāĻ˛ āĻ…āĻ°ā§āĻĨāĻ¨ā§€āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻāĻ¸ā§‡āĻ›āĻŋāĻ˛; āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ¤āĻšāĻŦāĻŋāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻĻāĻžāĻ¨āĻ“ āĻœāĻžāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻ†āĻŽāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ†āĻ˛āĻžāĻĻāĻž āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ…āĻ¨ā§āĻĻāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§, āĻ¯āĻžāĻ°āĻž āĻ¸āĻŦā§‡āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ›ā§‡āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ ), āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡āĨ¤

āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ—ā§‹ āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻŦā§āĻ˛āĻ•āĻ—ā§āĻ˛ā§‹ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡ āĻ¸ā§‡āĻŸāĻŋ āĻšāĻ˛ āĻ˛ā§‡āĻ­ā§‡āĻ˛āĻĄāĻŋāĻŦāĻŋāĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋ āĻšāĻ˛ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° (āĻ¯āĻž āĻŸāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻ•ā§‡āĻŸ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧ - āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒāĨ¤

āĻ¯ā§‡āĻŽāĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻ‡ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšāĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ…āĻĨāĻŦāĻž āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻāĻ• āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡āĨ¤ āĻāĻ‡ āĻ˛ā§‹āĻ•ā§‡āĻ°āĻž āĻāĻ•ā§‡ āĻ…āĻĒāĻ°āĻ•ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§‹ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻžāĻœāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ˛ā§āĻŸ-āĻ‡āĻ¨ āĻ•ā§āĻ¯āĻžāĻ˛āĻ•ā§āĻ˛ā§‡āĻŸāĻ° āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ "āĻšā§‡āĻ•āĻŦā§āĻ•" āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¨āĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¯āĻž āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‰āĻĻā§āĻ­ā§‚āĻ¤ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ°ā§āĻŸāĻŋāĻ¨ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄ, āĻ¯ā§‡āĻŽāĻ¨ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤, āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ‡āĻ¨āĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡ (āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻŦā§āĻ˛āĻ•āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡, āĻ˛ā§‡āĻ­ā§‡āĻ˛āĻĄāĻŋāĻŦāĻŋ-āĻ¤ā§‡ āĻŦā§āĻ˛āĻ•āĻ—ā§āĻ˛āĻŋ GOB āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĒā§āĻ°āĻžāĻ•-āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡, āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° (āĻ“āĻ°āĻĢā§‡ āĻ¨ā§‹āĻĄ) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŋāĨ¤

āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻŸāĻŋ āĻœāĻŸāĻŋāĻ˛ āĻ¨āĻ¯āĻŧ, āĻāĻ° āĻĒā§āĻ°ā§‹ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻšāĻ˛ āĻ•āĻŋāĻ›ā§ āĻĄā§‡āĻŸāĻž āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻŽā§‹āĻĄā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻž, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻŦāĻž āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨, āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ‡āĻ¨āĻ­ā§‡āĻ¨ā§āĻŸāĻ°āĻŋ āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¯āĻžāĻ¤ā§‡ āĻ¨ā§‹āĻĄāĻŸāĻŋ āĻœāĻžāĻ¨ā§‡ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•ā§‡ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ (āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¸ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ "āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻļā§€"āĻ“ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ•āĻžāĻ°āĻŖ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻ‡āĻĒāĻŋ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ°āĻžāĻœā§āĻ¯ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻŽā§‡āĻŽāĻ°āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤

āĻ—ā§‹ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§‡āĻ° āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻ—ā§āĻ˛āĻŋ (āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻŦāĻ˛ā§‡) āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻāĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ Go āĻ•ā§‹āĻĄ āĻ¸āĻš āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¤āĻžāĻ°āĻž āĻ˛āĻŋāĻ–ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°_āĻ¨āĻžāĻŽ_where_this_file āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŸāĻŋ āĻ–āĻžāĻ“āĻ¯āĻŧāĻžāĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ¯āĻžāĻ°āĻž āĻāĻ‡ āĻ­āĻžāĻˇāĻž āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻ—ā§‹āĻĒāĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻ˛:

  • āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— (āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ, āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛)
  • āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻĄā§‡āĻŸāĻžāĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹ (āĻŦā§āĻ˛āĻ•, āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨)
  • āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ (āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ¨)
  • āĻāĻ•ā§āĻ¯āĻŽāĻ¤
  • āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•āĻĄ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (xvm)
  • āĻ…āĻ•ā§āĻ¸āĻŋāĻ˛āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋ (āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‹, āĻĒā§āĻ°āĻ•āĻžāĻ°) āĻ†āĻĒāĻžāĻ¤āĻ¤ āĻāĻ¤āĻŸā§āĻ•ā§āĻ‡āĨ¤

āĻāĻ–āĻžāĻ¨ā§‡ github āĻ˛āĻŋāĻ™ā§āĻ•

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻļāĻŋāĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ, āĻāĻ¤ā§‡ āĻ†āĻ¨ā§āĻ¤āĻƒāĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻ…āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻŸāĻŋ āĻ¯āĻžāĻ° āĻ‰āĻĒāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ•āĻžāĻļā§‡ āĻāĻŸāĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ–ā§āĻļāĻŋ āĻšāĻŦāĨ¤ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛.

āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¤āĻžāĻ•āĻžāĻ‡āĨ¤

āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻžāĻŦāĻ°ā§āĻŸāĻŋāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ TCP āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ°ā§‡ āĻšāĻ˛ā§‡āĨ¤

āĻ°ā§āĻŸāĻŋāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛, āĻ§āĻ°āĻ¨ā§‡āĻ°. āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡ āĻ¨āĻŋāĻœā§‡āĻ‡ tcp_server.go āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻž.

type Serve struct {
	Port string
	BufSize int
	ST *types.Settings
}

āĻāĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

  • āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĒā§‹āĻ°ā§āĻŸ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĄā§‡āĻŸāĻž āĻ†āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡
  • JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛
  • āĻĄāĻŋāĻŦāĻžāĻ— āĻŽā§‹āĻĄā§‡ āĻšāĻ˛āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ¤āĻžāĻ•āĻž (āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨)

āĻ…āĻ—ā§āĻ°āĻ—āĻ¤āĻŋ:

  • JSON āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĄāĻŧā§‡
  • āĻĄāĻŋāĻŦāĻžāĻ— āĻŽā§‹āĻĄ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ— āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: āĻāĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻĨāĻžāĻ•āĻ˛ā§‡, āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻļāĻŋāĻĄāĻŋāĻ¯āĻŧā§āĻ˛āĻžāĻ° āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ‚ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ˛ā§‹āĻĄ āĻšāĻ¯āĻŧ āĻ¨āĻž
  • āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻž

āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°

  • āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ TCP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§‡āĨ¤
  • āĻāĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‹āĻ°ā§āĻŸ āĻ¨āĻŽā§āĻŦāĻ°, āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻ†āĻ•āĻžāĻ° āĻāĻŦāĻ‚ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻ°āĨ¤āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸
  • āĻ°āĻžāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ (āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻ‡āĻ¨āĻ•āĻžāĻŽāĻŋāĻ‚ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻļā§‹āĻ¨āĻž, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĨā§āĻ°ā§‡āĻĄā§‡ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ)
  • В āĻšāĻžāĻ¤āĻ˛ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĢāĻžāĻ°ā§‡ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĨ¤ āĻĒāĻ›āĻ¨ā§āĻĻ
  • āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĨ¤ āĻĒāĻ›āĻ¨ā§āĻĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻ¨ āĻĢāĻ˛ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ˜āĻŸāĻžāĻ¯āĻŧāĨ¤ āĻĢāĻ˛ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ protocol. āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ¯āĻž āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡ intrpr - āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻž, āĻ…āĻĨāĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ˜āĻŸāĻžāĻ¯āĻŧ
  • āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻ‡āĻšāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ intrpr.commands[0] āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻšā§‡āĻ• āĻ•āĻ°ā§‡: āĻĢāĻ˛āĻžāĻĢāĻ˛, āĻ‡āĻ¨āĻ­āĻŋ, āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ†āĻ›ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ
  • āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĢāĻ˛ āĻ¸ā§āĻ‡āĻš āĻŽāĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ intrpr.commands[1] āĻ¯āĻž āĻŽāĻžāĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻŦāĻžāĻĢāĻžāĻ° āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ и āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ (āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ)

āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ GetVersion и āĻŦāĻžāĻĢāĻžāĻ° āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ†āĻ›ā§‡ srvlib.go āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ

GetVersion(conn net.Conn, version string)

āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ:

conn.Write([]byte("result:" + version))

.
āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž

BufferLength(conn net.Conn, intrpr *protocol.InterpreteData)

āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ•, āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨, āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĄā§‡āĻŸāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§‡:

  • āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻžāĻ° āĻ§āĻ°āĻ¨ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:
    fmt.Println("DataType:", intrpr.Commands[2])
  • āĻŽāĻžāĻ¨ āĻĒāĻĄāĻŧā§‡ intrpr.Body āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ—āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ buf_len
  • āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ newbuf āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ†āĻ•āĻžāĻ°:
    make([]byte, buf_len)
  • āĻāĻ•āĻŸāĻŋ āĻ āĻŋāĻ• āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ:
    conn.Write([]byte("result:ok"))
  • āĻĒāĻ āĻŋāĻ¤ āĻĒā§āĻ°āĻŦāĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻŦāĻžāĻĢāĻžāĻ° āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§‡:
    io.ReadFull(conn, newbuf)

    .

  • āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻŦāĻžāĻĢāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°ā§‡
    fmt.Println(string(newbuf))

    āĻāĻŦāĻ‚ āĻĒāĻĄāĻŧāĻž āĻŦāĻžāĻ‡āĻŸā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž

    fmt.Println("Bytes length:", n)
  • āĻāĻ•āĻŸāĻŋ āĻ āĻŋāĻ• āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ:
    conn.Write([]byte("result:ok"))

āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛.

āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛

āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§‡ āĻĄā§‡āĻŸāĻž āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻĒāĻ›āĻ¨ā§āĻĻ (str āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚) (āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚, āĻ¤ā§āĻ°ā§āĻŸāĻŋ) āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§‡āĻŸāĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ‡āĻ¨āĻĒā§āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻĻā§‹āĻ­āĻžāĻˇā§€:

  • āĻ‡āĻ¨āĻĒā§āĻŸ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŽāĻžāĻĨāĻž āĻāĻŦāĻ‚ āĻļāĻ°ā§€āĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ ReqParseN2(str)
  • āĻšā§‡āĻĄ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ ReqParseHead(head) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
  • В āĻ¸ā§āĻ‡āĻš (āĻ•āĻŽāĻžāĻ¨ā§āĻĄ[0]) āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°ā§āĻ¨ (cmd, āĻ•ā§€, āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ)
  • cmd-āĻ 2āĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸ā§āĻ‡āĻš(āĻ•āĻŽāĻžāĻ¨ā§āĻĄ[1]) — āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ и getversion.
  • āĻ˛āĻŽā§āĻŦāĻž āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ†āĻĻā§‡āĻļ[2] āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡ āĻĄāĻžāĻŸāĻžāĻŸāĻžāĻ‡āĻĒ
  • āĻ¸ā§‡āĻŸāĻž āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻļāĻ°ā§€āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻŽāĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡
    len(body) < 1
  • āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡:
    "result:bufferlength:" + datatype + "/" + body
  • getversion āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡
    return "result:version/auto"

āĻĻā§‹āĻ­āĻžāĻˇā§€

āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°āĻŋāĻŸāĻĄā§‡āĻŸāĻž āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻĄā§‡āĻŸāĻž āĻĨā§‡āĻ•ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡ āĻ¤āĻžāĻ° āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄāĻžāĻ°āĻŋ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ āĻ•āĻ°ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŦāĻ¸ā§āĻ¤ā§ āĻ—āĻ āĻ¨ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻž.

type InterpreteData struct {
	Head string
	Commands []string
	Body string
	IsErr bool
	ErrCode int 
	ErrMessage string
}

āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž

Interprete(str string) (*InterpreteData, error)

āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡ āĻĢāĻ˛ āĻāĻŦāĻ‚ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻž.

āĻ…āĻ—ā§āĻ°āĻ—āĻ¤āĻŋ:

  • āĻāĻ•āĻ­āĻžāĻŦā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻŽāĻžāĻĨāĻž āĻāĻŦāĻ‚ āĻļāĻ°ā§€āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻˇā§āĻ•āĻžāĻļāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ ReqParseN2(str)
  • āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ ReqParseHead(āĻŽāĻžāĻĨāĻž)
  • āĻŦāĻ¸ā§āĻ¤ā§āĻŸāĻŋ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻž āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ:

res := &InterpreteData{
	Head: head,
	Commands: commands,
	Body: body,
}
return res, nil

āĻāĻ‡ āĻŦāĻ¸ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ server.go āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĨ¤

āĻŽāĻ•ā§āĻ•ā§‡āĻ˛

āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ TCPConnect и TCPresponseData.

āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž

TCPConnect(s *types.Settings, data []byte, payload []byte)

āĻāĻ‡ āĻŽāĻ¤ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡:

  • āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
    net.Dial("tcp", s.Host + ":" + s.Port)
  • āĻĄā§‡āĻŸāĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:
    conn.Write(data)
  • āĻ‰āĻ¤ā§āĻ¤āĻ° āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ
    resp, n, _ := TCPResponseData(conn, s.BufSize)

    āĻāĻŦāĻ‚ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤

    fmt.Println(string(resp[:n]))
  • āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ˛ā§‡ āĻĒā§‡ āĻ˛ā§‹āĻĄ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŸāĻŋ āĻĒāĻžāĻ¸
    conn.Write(payload)

    āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ“ āĻĒāĻĄāĻŧā§‡, āĻāĻŸāĻŋ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻŽā§āĻĻā§āĻ°āĻŖ āĻ•āĻ°ā§‡

āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž

 TCPResponseData(conn net.Conn, bufsiz int) ([]byte, int, error)

āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻĄāĻŧā§‡ āĻāĻŦāĻ‚ āĻāĻ‡ āĻŦāĻžāĻĢāĻžāĻ°āĻŸāĻŋ āĻāĻŦāĻ‚ āĻĒāĻ āĻŋāĻ¤ āĻŦāĻžāĻ‡āĻŸā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻžāĻŦāĻ°ā§āĻŸāĻŋāĻ¨

āĻ¨ā§‹āĻĄ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāĻ¤ā§‡, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡: JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛, āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻĄā§‡āĻŸāĻž, āĻĒā§‡āĻ˛ā§‹āĻĄā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĒāĻžāĻĨ, āĻ¨ā§‹āĻĄ āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛āĻžāĻ° āĻāĻŽā§āĻ˛ā§‡āĻļāĻ¨ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ—, āĻ¸āĻžāĻ‚āĻ–ā§āĻ¯āĻŋāĻ• āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻĄā§‡āĻŸāĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°āĨ¤

  • āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻšāĻšā§āĻ›ā§‡
    st := types.ParseConfig(*config)
  • āĻ‡āĻŽā§ āĻĒāĻ¤āĻžāĻ•āĻž āĻĒāĻžāĻ¸ āĻšāĻ˛ā§‡, āĻāĻŸāĻŋ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ sheduler
  • āĻ¯āĻĻāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĒāĻĨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ f āĻĒāĻ¤āĻžāĻ•āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻĄā§‡āĻŸāĻž āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻŋ fdb āĻāĻŦāĻ‚ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ
    client.TCPConnect(st, []byte(CMD_BUFFER_LENGTH + ":" + strconv.Itoa(*t) + "/" + strconv.Itoa(fdblen)), fdb)
  • āĻ¯āĻĻāĻŋ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒāĻ¤āĻžāĻ•āĻž āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ -d:
    client.TCPConnect(st, []byte(*data), nil)

āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻ—āĻ āĻ¨ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ°āĻ˛ā§€āĻ•ā§ƒāĻ¤ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž. āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻāĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ…āĻ‚āĻļā§‡ āĻ†āĻŽāĻŋ āĻŦā§āĻ˛āĻ• āĻāĻŦāĻ‚ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦ, 3-āĻ āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻ•ā§‡āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡, 4-āĻ āĻ†āĻŽāĻŋ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛āĻžāĻ° āĻĻā§‡āĻ–āĻŦ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¯āĻž āĻ‡āĻ¨āĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡, āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‹āĻ—ā§āĻ°āĻžāĻĢāĻŋ āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛.

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨