Программирование для Linux. Профессиональный подход
Шрифт:
5.5. Сокеты
Сокет — это устройство двунаправленного взаимодействия, которое предназначено для связи с другим процессом, выполняющимся на этом же или на другом компьютере. Сокеты используются Internet-программами, такими как
Например, с помощью программы
5.5.1. Концепции сокетов
При создании сокета необходимо задать три параметра, тип взаимодействия, пространство имен и протокол.
Тип взаимодействия определяет способ интерпретации передаваемых данных и число абонентов. Данные, посылаемые через сокет, формируются в блоки, называемые пакетами. Тип взаимодействия указывает на то, как обрабатываются пакеты и как они передаются от отправителя к получателю.
■ При взаимодействии с установлением соединения гарантируется доставка пакетов в том порядке, в каком они были отправлены. Если пакеты теряются или приходят в неправильном порядке из-за проблемы в сети, принимающая сторона автоматически запрашивает у отправителя повторную отправку данных.
Сокеты, ориентированные на соединения, функционируют наподобие телефонного звонка: адреса запрашивающей и принимающей сторон фиксируются в самом начале, на этапе установки соединения.
■ При передаче дейтаграмм не гарантируется доставка и правильный порядок пакетов. Пакеты могут теряться и приходить в произвольном порядке. Операционная система лишь обещает сделать "все возможное".
Дейтаграммные сокеты функционируют подобно почтовой службе: отправитель указывает адрес получателя каждого сообщения и не контролирует доставку пакетов.
Пространство имен сокета определяет способ записи адресов. Например, в локальном пространстве имен адреса — это обычные имена файлов. В пространстве имен Internet адрес сокета состоит из IP-адреса компьютера, подключенного к сети, и номера порта. Благодаря номерам портов можно различать сокеты, созданные на одном компьютере.
Протокол определяет способ передачи данных. Основными семействами протоколов являются TCP/IP (ключевые сетевые протоколы, используемые в Internet) и AppleTalk (протоколы, используемые системами Macintosh). Сокеты могут также работать в соответствии с локальным коммуникационным протоколом UNIX. Не все комбинации типов взаимодействия, пространств имен и протоколов поддерживаются.
5.5.2. Системные вызовы
Сокеты являются более гибкими в управлении, чем рассмотренные выше механизмы
■
■
■
■
■
■
Сокеты представляются в программе файловыми дескрипторами.
Функции
Выбор протокола определяется связкой "пространство имен — тип взаимодействия". Поскольку для каждой такой пары, как правило, лучше всего подходит какой-то один протокол, в третьем параметре функции
Чтобы установить соединение между двумя сокетами, следует на стороне клиента вызвать функцию
При работе с сокетами можно применять те же самые функции, что и при работе с файлами. О низкоуровневых функциях ввода-вывода, поддерживаемых в Linux, рассказывается в приложении Б, "Низкоуровневый ввод-вывод". Имеется также специальная функция
5.5.3. Серверы
Жизненный цикл сервера можно представить так:
1) создание сокета, ориентированного на соединения (функция socket);
Тайны исчезнувших цивилизаций
Все загадки Земли
Научно-образовательная:
история
культурология
рейтинг книги
Я не царь. Книга XXIV
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Судьба
Проза:
историческая проза
советская классическая проза
рейтинг книги
Последний Паладин. Том 9
9. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Предсказание
Фантастика:
фэнтези
рейтинг книги
Игра киллера
Детективы:
боевики
рейтинг книги
Война. Krieg. 1941—1945. Произведения русских и немецких писателей
Проза:
военная проза
рейтинг книги
Ловец мудрости
Фантастика:
фэнтези
рейтинг книги
Дауншифтер
Фантастика:
боевая фантастика
рейтинг книги
Вечный. Книга III
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
рейтинг книги
Арестант
7. Бандитский Петербург
Детективы:
боевики
рейтинг книги
Барону наплевать на правила
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Последний Паладин. Том 4
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Молния
1. Молния
Любовные романы:
исторические любовные романы
рейтинг книги