Sobes.tech
Junior — Middle

Kokiais atvejais ir kokiais tikslais naudojami soketai programavime?

sobes.tech AI

Atsakymas iš AI

Programavimo metu lizdai naudojami tinklo sąveikai tarp procesų organizuoti, kurie gali būti tiek tame pačiame kompiuteryje, tiek skirtinguose. Go kalboje lizdai naudojami kuriant klientų-serverių programas, keitimuisi duomenimis per TCP arba UDP protokolus.

Pagrindiniai naudojimo atvejai:

  • Tinklo serverių ir klientų įgyvendinimas (pvz., žiniatinklio serveris, pokalbis, žaidimai).
  • Duomenų keitimas tarp paskirstytų sistemų.
  • Savo protokolų kūrimas virš TCP/UDP.

Pavyzdys, kaip sukurti TCP serverį Go kalba:

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("Klaida prisijungiant:", 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("Klaida skaitant:", err)
        return
    }
    fmt.Println("Gauta:", string(buf[:n]))
    conn.Write([]byte("Sveiki iš serverio!"))
}