Программный автомат экспозиции
- 1 year ago
- 0
- 0
Со́кет ( англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами . Процессы при таком обмене могут исполняться как на одной ЭВМ , так и на различных ЭВМ, связанных между собой только сетью . Сокет — абстрактный объект, представляющий конечную точку соединения.
Следует различать клиентские и серверные сокеты . Клиентские сокеты грубо можно сравнить с конечными аппаратами телефонной сети , а серверные — с коммутаторами . Клиентское приложение (например, браузер ) использует только клиентские сокеты, а серверное (например, веб-сервер , которому браузер посылает запросы) — как клиентские, так и серверные сокеты.
Интерфейс сокетов впервые появился в BSD Unix . Программный интерфейс сокетов описан в стандарте POSIX .1 и в той или иной мере поддерживается всеми современными операционными системами .
Для взаимодействия между машинами с помощью стека протоколов TCP/IP используются адреса и порты. Адрес представляет собой 32-битную структуру для протокола IPv4 , 128-битную для IPv6 . Номер порта — целое число в диапазоне от 0 до 65535 (для протокола TCP ).
Эта пара определяет сокет («гнездо», соответствующее адресу и порту ).
В процессе обмена, как правило, используется два сокета — сокет отправителя и сокет получателя. Например, при обращении к серверу на HTTP -порт сокет будет выглядеть так: 194.106.118.30:80, а ответ будет поступать на mmm.nnn.ppp.qqq:xxxxx.
Каждый процесс может создать «слушающий» сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы не могут использовать порты меньше 1024).
Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т. д.
Каждый сокет имеет свой адрес. ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес . Если привязать сокет к UNIX-адресу, то будет создан специальный файл ( файл сокета ) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него (см. сокет домена Unix ). Сокеты типа INET доступны из сети и требуют выделения номера порта.
Обычно клиент явно «подсоединяется» к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные между ним и сервером.
Это
заготовка статьи
о
компьютерных сетях
. Помогите Википедии, дополнив её.
|