Сокет (программный интерфейс)

Сокет (программный интерфейс)

Со́кеты (англ. socket — углубление, гнездо, разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.

Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети, а серверные — с коммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.

Интерфейс сокетов впервые появился в BSD Unix. Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами.

Принципы сокетов

Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы не могут использовать порты меньше 1024). Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т.д.

Каждый сокет имеет свой адрес. ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес. Если привязать сокет к UNIX-адресу, то будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него (см. Доменный сокет Unix). Сокеты типа INET доступны из сети и требуют выделения номера порта.

Обычно клиент явно подсоединяется к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные между ним и сервером.

См. также




Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Сокет (программный интерфейс)" в других словарях:

  • Сокет — Сокет: Сокет (программный интерфейс)  программный интерфейс для обеспечения информационного обмена между процессами. Разъём процессора персонального компьютера  специальное гнездо (разъём) на материнской плате, предназначенное для… …   Википедия

  • Socket — Сокет: Сокет (программный интерфейс)  программный интерфейс для обеспечения информационного обмена между процессами. Разъём процессора персонального компьютера  специальное гнездо (разъём) на материнской плате, предназначенное для облегчения… …   Википедия

  • Зокет — Сокет: Сокет (программный интерфейс)  программный интерфейс для обеспечения информационного обмена между процессами. Разъём процессора персонального компьютера  специальное гнездо (разъём) на материнской плате, предназначенное для облегчения… …   Википедия

  • Unix domain socket — (Доменный сокет Unix) или IPC сокет (сокет межпроцессного взаимодействия) конечная точка обмена данными, схожая с Интернет сокетом, но не использующая сетевой протокол для взаимодействия (обмена данными). Он используется в операционных системах,… …   Википедия

  • Netcat — (NetCat) Тип сетевая утилита (TCP, UDP) Разработчик Hobbit* Написана на C Операционная система UNIX Последняя версия 0.7.1 (11 января 2004) Лицензия …   Википедия

  • Файловый дескриптор — Ко всем потокам ввода вывода (которые могут быть связаны как с файлами, так и с папками, сокетами и FIFO) можно получить доступ через так называемые файловые дескрипторы. Файловый дескриптор это неотрицательное целое число. Когда создается новый… …   Википедия

  • UNIX — Генеалогическое древо UNIX систем UNIX (читается юникс) семейство переносимых, многозадачных и многопользовательских …   Википедия

  • Сервер (программное обеспечение) — У этого термина существуют и другие значения, см. Сервер. Логотип Web сервера Apache Серверное программное обеспечение (англ. server от …   Википедия

  • Сервер (приложение) — Логотип сервера англ. server от англ. to serve служить) в информационных технологиях программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»