Что такое розетка?
Сокеты обеспечивают связь между двумя разными процессами на одной или разных машинах. Если быть более точным, это способ общения с другими компьютерами с использованием стандартных файловых дескрипторов Unix. В Unix каждое действие ввода-вывода выполняется путем записи или чтения файлового дескриптора. Дескриптор файла - это просто целое число, связанное с открытым файлом, и это может быть сетевое соединение, текстовый файл, терминал или что-то еще.
Для программиста сокет выглядит и ведет себя так же, как файловый дескриптор низкого уровня. Это связано с тем, что такие команды, как read () и write (), работают с сокетами так же, как с файлами и каналами.
Сокеты были впервые представлены в 2.1BSD и впоследствии преобразованы в их текущую форму в 4.2BSD. Функция сокетов теперь доступна в большинстве последних выпусков системы UNIX.
Где используется сокет?
Сокет Unix используется в структуре клиент-серверных приложений. Сервер - это процесс, который выполняет некоторые функции по запросу от клиента. Большинство протоколов уровня приложений, таких как FTP, SMTP и POP3, используют сокеты для установления соединения между клиентом и сервером, а затем для обмена данными.
Типы розеток
Пользователям доступны четыре типа розеток. Первые два используются чаще всего, а последние два - редко.
Предполагается, что процессы взаимодействуют только между сокетами одного и того же типа, но нет никаких ограничений, препятствующих обмену данными между сокетами разных типов.
Stream Sockets- Доставка в сетевом окружении гарантирована. Если вы отправите через сокет потока три элемента «A, B, C», они придут в том же порядке - «A, B, C». Эти сокеты используют TCP (протокол управления передачей) для передачи данных. Если доставка невозможна, отправитель получает индикатор ошибки. Записи данных не имеют границ.
Datagram Sockets- Доставка в сетевом окружении не гарантируется. Они не поддерживают соединение, потому что вам не нужно иметь открытое соединение, как в Stream Sockets - вы создаете пакет с информацией о месте назначения и отправляете его. Они используют UDP (протокол дейтаграмм пользователя).
Raw Sockets- Они предоставляют пользователям доступ к базовым протоколам связи, которые поддерживают абстракции сокетов. Эти сокеты обычно ориентированы на дейтаграммы, хотя их точные характеристики зависят от интерфейса, предоставляемого протоколом. Сырые сокеты не предназначены для обычного пользователя; они предназначены в основном для тех, кто заинтересован в разработке новых протоколов связи или для получения доступа к некоторым из наиболее загадочных средств существующего протокола.
Sequenced Packet Sockets- Они похожи на сокет потока, за исключением сохранения границ записи. Этот интерфейс предоставляется только как часть абстракции сокета сетевых систем (NS) и очень важен для большинства серьезных приложений NS. Сокеты с последовательными пакетами позволяют пользователю манипулировать заголовками Sequence Packet Protocol (SPP) или Internet Datagram Protocol (IDP) в пакете или группе пакетов, либо записывая заголовок прототипа вместе с любыми данными, которые должны быть отправлены, либо с помощью указание заголовка по умолчанию, который будет использоваться со всеми исходящими данными, и позволяет пользователю получать заголовки входящих пакетов.
Что следующее?
Следующие несколько глав предназначены для того, чтобы укрепить ваши основы и подготовить основу, прежде чем вы сможете писать серверные и клиентские программы с использованием сокетов . Если вы хотите сразу перейти к написанию клиентской и серверной программы, вы можете это сделать, но это не рекомендуется. Настоятельно рекомендуется пройти шаг за шагом и завершить эти несколько первых глав, чтобы сформировать основу, прежде чем переходить к программированию.