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