āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻ¯āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ–ā§‹āĻāĻœā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦā§‡āĻĻāĻŋāĻ¤āĨ¤

āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡

āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§‡āĻ° āĻŽā§‚āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ā§ˇ Go, UDP āĻāĻŦāĻ‚ TCP āĻ¸āĻšāĨ¤ āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¸āĻŽāĻ¯āĻŧ, два, āĻ¤āĻŋāĻ¨ āĻāĻŦāĻ‚ āĻŦāĻ‡ "āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĨ¤ āĻŸāĻĒ-āĻĄāĻžāĻ‰āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ°ā§‹āĻš", āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¸āĻŦāĻžāĻ‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŸā§āĻ¯āĻžāĻ¨ā§‡āĻ¨āĻŦāĻžāĻ‰āĻŽ āĻāĻŦāĻ‚ āĻ…āĻ˛āĻŋāĻĢāĻ°āĻ­ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻ›ā§‡āĨ¤

āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛

āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

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

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ–āĻŖā§āĻĄā§‡ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡ (āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ) āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸ āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° āĻšā§‡āĻĄāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

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

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§‡āĻ° āĻ¨ā§€āĻ¤āĻŋ

āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨

āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻ•ā§‡āĻ¸āĨ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻĻāĻŋāĻ•āĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸ā§āĻ¤āĻ° āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻ•āĻžāĻ°ā§€ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤

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

package main

import (
    "log"
    "net"
)

func main() {
    // IP-Đ°Đ´Ņ€ĐĩŅ ŅĐĩŅ€Đ˛ĐĩŅ€Đ° и ĐŋĐžŅ€Ņ‚
    serverAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:12000")
    if err != nil {
        log.Fatal(err)
    }

    // ŅĐžĐˇĐ´Đ°ĐĩĐŧ ŅĐžĐēĐĩŅ‚ Ņ ĐŋĐžŅ€Ņ‚ĐžĐŧ
    serverConn, err := net.ListenUDP("udp", serverAddr)
    if err != nil {
        log.Fatal(err)
    }
    // ĐžŅ‚ĐģĐžĐļĐĩĐŊĐŊĐžĐĩ СаĐēŅ€Ņ‹Ņ‚иĐĩ ŅĐžĐĩдиĐŊĐĩĐŊиŅ
    defer serverConn.Close()

    // ŅĐžĐˇĐ´Đ°ĐĩĐŧ ĐąŅƒŅ„ĐĩŅ€ Đ´ĐģŅ Đ´Đ°ĐŊĐŊŅ‹Ņ…
    buf := make([]byte, 1024)

    // ĐļĐ´ĐĩĐŧ ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ
    for {
        // Ņ‡Đ¸Ņ‚Đ°ĐĩĐŧ СаĐŋŅ€ĐžŅ
        n, addr, err := serverConn.ReadFromUDP(buf)
        // ĐŋĐĩŅ€ĐĩĐ´Đ°ĐĩĐŧ Đ´Đ°ĐŊĐŊŅ‹Đĩ в ВЕРĐĨНИЙ ŅƒŅ€ĐžĐ˛ĐĩĐŊŅŒ: в ĐŊĐ°ŅˆĐĩĐŧ ŅĐģŅƒŅ‡Đ°Đĩ stdout
        println(string(buf[0:n]), " form ", addr.IP.String())
        if err != nil {
            log.Fatal(err)
        }
        // ĐžŅ‚вĐĩŅ‚Đ° ĐŊĐĩŅ‚, Ņ‚.Đē. ŅŅ‚Đž UDP + ĐŊĐ°Đ´ĐĩĐļĐŊŅ‹Đš ĐēĐ°ĐŊĐ°Đģ
    }
}

āĻ•ā§āĻ°ā§‡āĻ¤āĻž

package main

import (
    "fmt"
    "log"
    "net"
    "time"
)

func main() {
    // IP-Đ°Đ´Ņ€ĐĩŅ ŅĐĩŅ€Đ˛ĐĩŅ€Đ° и ĐŋĐžŅ€Ņ‚
    serverAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:12000")
    if err != nil {
        log.Fatal(err)
    }
    // ĐģĐžĐēĐ°ĐģŅŒĐŊŅ‹Đš IP-Đ°Đ´Ņ€ĐĩŅ и ĐŋĐžŅ€Ņ‚
    localAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0")
    if err != nil {
        log.Fatal(err)
    }
    // ŅƒŅŅ‚Đ°ĐŊОвĐēĐ° ŅĐžĐĩдиĐŊĐĩĐŊиŅ
    conn, err := net.DialUDP("udp", localAddr, serverAddr)
    if err != nil {
        log.Fatal(err)
    }
    // ĐžŅ‚ĐģĐžĐļĐĩĐŊĐŊĐžĐĩ СаĐēŅ€Ņ‹Ņ‚иĐĩ ŅĐžĐĩдиĐŊĐĩĐŊиŅ
    defer conn.Close()

    for {
        // ĐŋĐžĐģŅƒŅ‡ĐĩĐŊиĐĩ Đ´Đ°ĐŊĐŊŅ‹Ņ… ĐžŅ‚ ВЕРĐĨНЕГО ŅƒŅ€ĐžĐ˛ĐŊŅ
        fmt.Print("ВвĐĩдиŅ‚Đĩ ŅŅ‚Ņ€ĐžŅ‡ĐŊĐžĐĩ ĐŋŅ€ĐĩĐ´ĐģĐžĐļĐĩĐŊиĐĩ > ")
        var msg string
        _, err := fmt.Scanf("%s", &msg)
        if err != nil {
            log.Fatal(err)
        }
        // ĐŋĐĩŅ€ĐĩĐ´Đ°ĐĩŅ‚ŅŅ ĐŋĐžŅ‚ĐžĐē йаКŅ‚, Đ° ĐŊĐĩ ŅŅ‚Ņ€ĐžĐēĐ°
        buf := []byte(msg)
        // СаĐŋиŅŅŒ (ĐŋĐĩŅ€ĐĩĐ´Đ°Ņ‡Đ°) в ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ
        _, err = conn.Write(buf)
        if err != nil {
            log.Fatal(err)
        }
        // 1 ŅĐĩĐēŅƒĐŊĐ´ĐžŅ‡ĐēŅƒ
        time.Sleep(time.Second * 1)
    }
}

āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒāĻŸāĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻž āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¸ā§‡ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ—ā§ƒāĻšā§€āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻŦāĻŋāĻ•ā§ƒāĻ¤āĻŋ āĻ¸āĻš āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻŸāĻ—ā§āĻ˛āĻŋ āĻĻā§‚āĻˇāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

  • āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻ°āĻŖ;
  • āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž
  • āĻĒā§āĻ¨āĻƒāĻĒā§āĻ°āĻšāĻžāĻ°

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

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻŦāĻŋāĻ•ā§ƒāĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ•ā§āĻˇāĻ¤āĻŋ āĻ¸āĻžāĻĒā§‡āĻ•ā§āĻˇā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨

āĻŦāĻŋāĻ•ā§ƒāĻ¤āĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ•ā§āĻˇāĻ¤āĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

  • āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻšāĻžāĻ°āĻžāĻ¨ā§‹āĻ° āĻ˜āĻŸāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧ āĻ•āĻ°āĻž;
  • āĻ—ā§āĻ°āĻšā§€āĻ¤āĻž āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ¤āĻ°āĻŖāĨ¤

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

// defaultTCPKeepAlive is a default constant value for TCPKeepAlive times
// See golang.org/issue/31510
const (
    defaultTCPKeepAlive = 15 * time.Second
)

āĻĒā§āĻ°ā§‡āĻ°āĻŖāĻ•āĻžāĻ°ā§€ āĻĒāĻ•ā§āĻˇāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŦāĻžāĻ° āĻ‰āĻ­āĻ¯āĻŧāĻ‡), āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻŦāĻžāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻŽā§‚āĻ˛ āĻ§āĻžāĻ°āĻŖāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋ:

  • āĻšā§‡āĻ•āĻ¸āĻžāĻŽ
  • āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡āĻ° āĻ•ā§āĻ°āĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž;
  • āĻŸāĻžāĻ‡āĻŽāĻžāĻ°;
  • āĻ‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻāĻŦāĻ‚ āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋāĨ¤

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻļā§‡āĻˇ āĻ¨āĻ¯āĻŧ!

āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨āĻŋāĻ‚ āĻ¸āĻš āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ° āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛

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

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻĢāĻ˛ā§‡:

  • āĻ•ā§āĻ°āĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸āĻ° āĻŦā§ƒāĻĻā§āĻ§āĻŋ, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ (āĻĒā§āĻ¨āĻƒāĻĒā§āĻ°āĻšāĻžāĻ° āĻŦā§āĻ¯āĻ¤ā§€āĻ¤) āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°āĻ­āĻžāĻŦā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•;
  • āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ°āĻŋāĻ¸āĻŋāĻ­āĻŋāĻ‚ āĻ¸āĻžāĻ‡āĻĄā§‡ āĻŦāĻžāĻĢāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤

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

  • N āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¨;
  • āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ā§€ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĨ¤

āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž N āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ - āĻ¸ā§āĻ˛āĻžāĻ‡āĻĄāĻŋāĻ‚ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻĒā§āĻ°ā§‡āĻ°āĻ•āĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¤āĻŋāĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

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

āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ā§€ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ

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

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻ¸ā§‡āĻ°āĻž āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ TCP. āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ•ā§‡āĻ‰ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ°āĻž - āĻ¸ā§āĻŦāĻžāĻ—āĻ¤.

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

package main

import (
    "bufio"
    "fmt"
    "log"
    "net"
    "strings"
)

func main() {
    // ŅĐžĐˇĐ´Đ°ĐĩĐŧ ŅĐžĐēĐĩŅ‚ Ņ ĐŋĐžŅ€Ņ‚ĐžĐŧ 
    ln, err := net.Listen("tcp", ":8081")
    if err != nil {
        log.Fatalln(err)
    }
    // ĐžĐļидаĐŊиĐĩ вŅ‹ĐˇĐžĐ˛Đ°
    conn, _ := ln.Accept()

    for {
        // ŅŅ‡Đ¸Ņ‚Ņ‹Đ˛Đ°ĐŊиĐĩ Đ´Đ°ĐŊĐŊŅ‹Ņ…
        msg, err := bufio.NewReader(conn).ReadString('n')
        if err != nil {
            log.Fatalln(err)
        }
        // вŅ‹Đ˛ĐžĐ´ ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ в stdout
        fmt.Print("Message Received:", string(msg))
        // ĐŋĐĩŅ€ĐĩвОд ŅŅ‚Ņ€ĐžĐēи в вĐĩŅ€Ņ…ĐŊиК Ņ€ĐĩĐŗиŅŅ‚Ņ€
        newMsg := strings.ToUpper(msg)
        // ĐžŅ‚ĐŋŅ€Đ°Đ˛ĐēĐ° Đ´Đ°ĐŊĐŊŅ‹Ņ…
        conn.Write([]byte(newMsg + "n"))
    }
}

āĻ•ā§āĻ°ā§‡āĻ¤āĻž

package main

import (
    "bufio"
    "fmt"
    "log"
    "net"
    "os"
)

func main() {
    // ŅƒŅŅ‚Đ°ĐŊОвĐēĐ° ŅĐžĐĩдиĐŊĐĩĐŊиŅ
    conn, err := net.Dial("tcp", "127.0.0.1:8081")
    if err != nil {
        log.Fatalln(err)
    }

    for {
        // ŅŅ‡Đ¸Ņ‚Ņ‹Đ˛Đ°ĐŊиĐĩ Đ´Đ°ĐŊĐŊŅ‹Ņ… Ņ stdin
        reader := bufio.NewReader(os.Stdin)
        fmt.Print("Text to send: ")
        // ĐŋĐžŅŅ‚Ņ€ĐžŅ‡ĐŊĐž
        text, err := reader.ReadString('n')
        if err != nil {
            log.Fatalln(err)
        }
        // ĐžŅ‚ĐŋŅ€Đ°Đ˛ĐēĐ°
        fmt.Fprintf(conn, text+"n")
        // ĐŋŅ€Đ¸ĐĩĐŧ
        msg, err := bufio.NewReader(conn).ReadString('n')
        if err != nil {
            log.Fatalln(err)
        }
        // вŅ‹Đ˛ĐžĐ´ ĐŋĐžĐģŅƒŅ‡ĐĩĐŊĐŊĐžĐŗĐž ĐžŅ‚вĐĩŅ‚Đ°
        fmt.Print("Msg from Server: " + msg)
    }
}

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

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

āĻ•āĻ˛āĻ•āĻŦā§āĻœāĻž
āĻ†āĻŦā§‡āĻĻāĻ¨, āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯

āĻ¸āĻŽāĻˇā§āĻŸāĻŋ āĻšā§‡āĻ•
āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡ āĻŦāĻŋāĻŸ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ

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

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

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

āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ•āĻ°āĻŖ
āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸāĻŸāĻŋ āĻ­ā§āĻ˛āĻ­āĻžāĻŦā§‡ āĻ—ā§ƒāĻšā§€āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻĒā§āĻ°ā§‡āĻ°āĻ•āĻ•ā§‡ āĻœāĻžāĻ¨āĻžāĻ¤ā§‡ āĻĒā§āĻ°āĻžāĻĒāĻ•ā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤āĻŋāĻ¤ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ•ā§āĻ°āĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ

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

āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ Go āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ†āĻ°āĻ“ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

В āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛.

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

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