เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด™เตเด™เตพ

เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด™เตเด™เตพ

เด‰เดณเตเดณเดตเดฐเต‹เดŸเต เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเตเด‚ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด•เดณเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดธเดฎเตผเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ

เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตปเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด•เดพเดฐเตเดฏเด™เตเด™เตพ เดฒเต‡เด–เดจเด‚ เดšเตผเดšเตเดšเดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•