Sobes.tech
Junior — Middle

Тармактык өз аралык үчүн сокеттер менен иштөө тажрыйбасыңыз барбы?

sobes.tech AI

AIден жооп

Ооба, тармактык өз ара аракеттешүү үчүн сокеттер менен иштөө тажрыйбасы көбүнесе кардар жана сервер тиркемелерин түзүүнү камтыйт, алар тармак аркылуу маалымат алмашышат.

Go'до, адатта, net пакети сокеттер менен иштөө үчүн колдонулат. Мисалы, жөнөкөй TCP сервер жана кардар түзсө болот.

Go'до TCP серверинин мисалы:

package main

import (
    "fmt"
    "net"
)

func main() {
    ln, err := net.Listen("tcp", ":8080")
    if err != nil {
        panic(err)
    }
    defer ln.Close()

    for {
        conn, err := ln.Accept()
        if err != nil {
            fmt.Println("Туташуу катасы:", err)
            continue
        }
        go handleConnection(conn)
    }
}

func handleConnection(conn net.Conn) {
    defer conn.Close()
    buf := make([]byte, 1024)
    n, err := conn.Read(buf)
    if err != nil {
        fmt.Println("Окуу катасы:", err)
        return
    }
    fmt.Println("Алып берилген билдирүү:", string(buf[:n]))
    conn.Write([]byte("Кабыл алынды"))
}

Бул тажрыйба сокет деңгээлиндеги тармактык өз ара аракеттешүүнү, байланыштарды башкарууну жана маалыматтарды иштетүүнү түшүнүүнү көрсөтөт.