Sobes.tech
Junior — Middle

Kādās situācijās un kādiem mērķiem izmanto soketus programmēšanā?

sobes.tech AI

Atbilde no AI

Programmēšanā ligzdas tiek izmantotas tīkla mijiedarbības organizēšanai starp procesiem, kas var atrasties vai nu tajā pašā datorā, vai dažādos. Go valodā ligzdas tiek izmantotas klienta-servera lietojumprogrammu izveidei, datu apmaiņai, izmantojot TCP vai UDP protokolus.

Galvenie lietošanas gadījumi:

  • Tīkla serveru un klientu īstenošana (piemēram, tīmekļa serveris, čats, spēles).
  • Datu apmaiņa starp izplatītām sistēmām.
  • Pašu protokolu izveide virs TCP/UDP.

Piemērs, kā izveidot TCP serveri Go valodā:

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("Savienojuma kļūda:", 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("Lasīšanas kļūda:", err)
        return
    }
    fmt.Println("Saņemts:", string(buf[:n]))
    conn.Write([]byte("Sveiki no servera!"))
}