Сокет (socket) — это абстракция конечной точки двунаправленного сетевого взаимодействия между двумя программами через сеть.
В контексте сетевого программирования, сокет представляет собой программный объект, который:
- Идентифицируется парой IP-адрес + порт.
- Является интерфейсом для отправки и приема данных.
- Предоставляет способ для процессов обмениваться информацией, независимо от того, находятся ли они на одной или разных машинах.
Существуют два основных типа сокетов в зависимости от используемого протокола транспортного уровня:
- TCP-сокеты (потоковые):
- Используют протокол TCP.
- Обеспечивают надежную, ориентированную на соединение потоковую передачу данных.
- Гарантируют доставку данных, сохранение порядка и отсутствие дубликатов.
- Используются для протоколов, требующих надежной передачи (HTTP, FTP, SSH).
- UDP-сокеты (дейтаграммные):
- Используют протокол UDP.
- Представляют собой ненадежную, безсоединительную передачу данных в виде дейтаграмм.
- Не гарантируют доставку, порядок или отсутствие дубликатов.
- Используются для протоколов, где важна скорость, а не надежность (DNS, по
Сокет (socket) — это абстракция конечной точки двунаправленного сетевого взаимодействия между двумя программами через сеть.
В контексте сетевого программирования, сокет представляет собой программный объект, который:
- Идентифицируется парой IP-адрес + порт.
- Является интерфейсом для отправки и приема данных.
- Предоставляет способ для процессов обмениваться информацией, независимо от того, находятся ли они на одной или разных машинах.
Существуют два основных типа сокетов в зависимости от используемого протокола транспортного уровня:
- TCP-сокеты (потоковые):
- Используют протокол TCP.
- Обеспечивают надежную, ориентированную на соединение потоковую передачу данных.
- Гарантируют доставку данных, сохранение порядка и отсутствие дубликатов.
- Используются для протоколов, требующих надежной передачи (HTTP, FTP, SSH).
- UDP-сокеты (дейтаграммные):
- Используют протокол UDP.
- Представляют собой ненадежную, безсоединительную передачу данных в виде дейтаграмм.
- Не гарантируют доставку, порядок или отсутствие дубликатов.
- Используются для протоколов, где важна скорость, а не надежность (DNS, по