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("Кабыл алынды"))
}
Бул тажрыйба сокет деңгээлиндеги тармактык өз ара аракеттешүүнү, байланыштарды башкарууну жана маалыматтарды иштетүүнү түшүнүүнү көрсөтөт.