Skip to main content

Программирование сокетов для компьютерных сетей - Резюме

Сетевое взаимодействие на C#. Основы. Отправка сообщения с клиента на сервер через TCP протокол (Май 2024)

Сетевое взаимодействие на C#. Основы. Отправка сообщения с клиента на сервер через TCP протокол (Май 2024)
Anonim

Сокет - одна из самых фундаментальных технологий программирования компьютерной сети. Сокеты позволяют сетевым программным приложениям взаимодействовать с использованием стандартных механизмов, встроенных в сетевое оборудование и операционные системы.

Хотя это может показаться еще одной особенностью разработки интернет-программного обеспечения, технология сокетов существовала задолго до Интернета. И многие из самых популярных в мире сетевых программных приложений полагаются на сокеты.

Какие сокеты могут работать в вашей сети

Сокет представляет собой одно соединение между двумя частями программного обеспечения (так называемое точка-точка подключение). Более двух компонентов программного обеспечения могут взаимодействовать с клиентскими или серверными или распределенными системами, используя несколько сокетов. Например, многие веб-браузеры могут одновременно обмениваться данными с одним веб-сервером через группу сокетов, созданных на сервере.

Программное обеспечение на основе сокетов обычно работает на двух отдельных компьютерах в сети, но сокеты также могут использоваться для локального общения ( межпроцессного ) на одном компьютере. Розетки двунаправленный , что означает, что любая сторона соединения способна как отправлять, так и принимать данные. Иногда одно приложение, которое инициирует сообщение, называется «клиент», а другое приложение - «сервером», но эта терминология приводит к путанице в одноранговой сети и обычно ее следует избегать.

API-интерфейсы и библиотеки Socket

В Интернете существует несколько библиотек, которые реализуют стандартные интерфейсы прикладного программирования (API). Первый основной пакет - Библиотека Socket Berkeley по-прежнему широко используется в системах UNIX. Другим очень распространенным API является библиотека Windows Sockets (WinSock) для операционных систем Microsoft. По сравнению с другими компьютерными технологиями, API-интерфейсы сокетов довольно зрелые: WinSock используется с 1993 года и гнездо Berkeley с 1982 года.

API-интерфейсы сокетов относительно малы и просты. Многие из функций аналогичны функциям, используемым в процедурах ввода / вывода файлов, таких как читать(), записывать(), а также близко(), Фактические вызовы функций зависят от языка программирования и выбранной библиотеки сокетов.

Типы интерфейсов разъема

Интерфейсы разъемов можно разделить на три категории:

  • Поток сокеты, наиболее распространенный тип, требует, чтобы две сообщающиеся стороны сначала установили соединение сокета, после чего любые данные, прошедшие через это соединение, будут гарантированно поступать в том же порядке, в котором он был отправлен, - так называемая модель программирования, ориентированная на соединение ,
  • дейтаграмма сокеты предлагают семантику «без подключения». С дейтаграммами соединения являются неявными, а не явными, как потоки. Любая сторона просто посылает дейтаграммы по мере необходимости и ждет ответа другого; сообщения могут быть потеряны при передаче или получены не по порядку, но ответственность за эти проблемы лежит на приложении, а не на сокетах. Реализация сокетов датаграмм может дать некоторым приложениям повышение производительности и дополнительную гибкость по сравнению с использованием сокетов потока, оправдывая их использование в некоторых ситуациях.
  • Третий тип сокета - сырье socket - обходит встроенную поддержку библиотеки для стандартных протоколов, таких как TCP и UDP. Необработанные сокеты используются для разработки пользовательских низкоуровневых протоколов.

Поддержка сокетов в сетевых протоколах

Современные сетевые сокеты обычно используются в сочетании с интернет-протоколами - IP, TCP и UDP. Библиотеки, реализующие сокеты для интернет-протокола, используют TCP для потоков, UDP для датаграмм и сам IP для сырых сокетов.

Для связи через Интернет, библиотеки сокетов IP используют IP-адрес для идентификации определенных компьютеров. Многие части Интернета работают с услугами именования, так что пользователи и сокеты могут работать с компьютерами по имени ( например , "thiscomputer.wireless.about.com") вместо адреса ( например , 208.185.127.40). Сокеты Stream и datagram также используют номера IP-портов для различения нескольких приложений друг от друга. Например, веб-браузеры в Интернете знают, что использовать порт 80 по умолчанию для связи сокетов с веб-серверами.