Sobes.tech
Junior — Middle

Σε ποιες περιπτώσεις και για ποιους σκοπούς χρησιμοποιούνται οι sockets στον προγραμματισμό;

sobes.tech AI

Απάντηση από AI

Οι υποδοχές στον προγραμματισμό χρησιμοποιούνται για την οργάνωση της δικτυακής αλληλεπίδρασης μεταξύ διεργασιών, που μπορεί να βρίσκονται είτε στον ίδιο υπολογιστή είτε σε διαφορετικούς. Στη γλώσσα Go, οι υποδοχές χρησιμοποιούνται για τη δημιουργία εφαρμογών πελάτη-διακομιστή, την ανταλλαγή δεδομένων μέσω πρωτοκόλλων TCP ή UDP.

Κύριες περιπτώσεις χρήσης:

  • Υλοποίηση δικτυακών διακομιστών και πελατών (π.χ., διακομιστής ιστού, συνομιλία, παιχνίδια).
  • Ανταλλαγή δεδομένων μεταξύ κατανεμημένων συστημάτων.
  • Δημιουργία δικών τους πρωτοκόλλων πάνω από TCP/UDP.

Παράδειγμα δημιουργίας διακομιστή TCP στη γλώσσα Go:

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("Γειά από τον διακομιστή!"))
}