Back to questions
Avito
Senior
4
Что такое сокеты и какими они бывают?
Companies where asked
Answer from AI
sobes.tech AI
Сокеты — это программный интерфейс для организации сетевого взаимодействия между процессами, часто между разными компьютерами. Они позволяют приложениям обмениваться данными по сети, используя различные протоколы.
Основные типы сокетов:
- Stream sockets (TCP) — обеспечивают надежную, ориентированную на соединение передачу данных. Используются для протокола TCP.
- Datagram sockets (UDP) — обеспечивают передачу сообщений без установления соединения, без гарантии доставки. Используются для протокола UDP.
- Raw sockets — позволяют работать с сетевыми протоколами на низком уровне, например, для реализации собственных протоколов или анализа трафика.
В Go для работы с сокетами используется пакет net. Пример создания TCP-сервера:
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("Error accepting connection:", err)
continue
}
go handleConnection(conn)
}
}
func handleConnection(c net.Conn) {
defer c.Close()
buf := make([]byte, 512)
n, err := c.Read(buf)
if err != nil {
fmt.Println("Error reading:", err)
return
}
fmt.Println("Received:", string(buf[:n]))
}
Таким образом, сокеты — это фундаментальный механизм для сетевого взаимодействия, а их типы определяют способ и надежность передачи данных.