Ответ
Для сетевого взаимодействия операционная система создает сокет (socket).
Сокет — это программный интерфейс (API), который представляет собой конечную точку для отправки и получения данных между процессами по сети. Он абстрагирует детали работы сетевых протоколов, таких как TCP/IP.
Ключевые характеристики сокета:
- Идентификация: Сокет уникально идентифицируется комбинацией IP-адреса и номера порта.
- Типы:
- Потоковые сокеты (
SOCK_STREAM): Используют протокол TCP, обеспечивая надежную, упорядоченную доставку данных с установлением соединения. - Датаграммные сокеты (
SOCK_DGRAM): Используют протокол UDP, который отправляет независимые пакеты (датаграммы) без гарантии доставки.
- Потоковые сокеты (
- Абстракция: ОС берет на себя управление низкоуровневыми задачами: фрагментация данных на пакеты, маршрутизация, обработка ошибок и управление буферами.
Пример создания TCP-сокета на Python:
import socket
# 1. Создание сокета (семейство адресов IPv4, потоковый тип TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# 2. Подключение к удаленному хосту и порту
s.connect(("example.com", 80))
print("Соединение установлено.")
# 3. Отправка данных (HTTP GET запрос)
request = b"GET / HTTP/1.1rnHost: example.comrnConnection: closernrn"
s.sendall(request)
# 4. Получение ответа
response = s.recv(4096)
print(response.decode('utf-8'))
finally:
# 5. Закрытие сокета
s.close()