Sobes.tech
Junior — Middle

Έχετε εμπειρία με τις υποδοχές για δικτυακή αλληλεπίδραση;

sobes.tech AI

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

Ναι, η εμπειρία με τις υποδοχές (sockets) για την δικτυακή αλληλεπίδραση περιλαμβάνει συχνά τη δημιουργία πελατειακών και διακομιστικών εφαρμογών που ανταλλάσσουν δεδομένα μέσω του δικτύου.

Στο Go, συνήθως χρησιμοποιείται το πακέτο net για εργασία με υποδοχές. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν απλό TCP διακομιστή και πελάτη.

Παράδειγμα 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("Λήφθηκε"))
}

Αυτή η εμπειρία δείχνει κατανόηση της δικτυακής αλληλεπίδρασης σε επίπεδο υποδοχών, διαχείριση συνδέσεων και επεξεργασία δεδομένων.