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

Программирование сокетов является фундаментальной технологией связи в сетях TCP / IP. Сокет — это одна конечная точка двусторонней связи между двумя программами, работающими в сети. Сокет обеспечивает конечную точку двунаправленной связи для отправки и получения данных с другим сокетом.

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

Розетки и адреса

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

При создании нового сокета библиотека сокетов автоматически генерирует уникальный номер порта на этом устройстве. Программист также может указывать номера портов в определенных ситуациях.

Схема сокетов TCP / IP
Micrium.com

Как работают серверные сокеты

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

Библиотеки сокетов

Вместо того чтобы кодировать непосредственно в API-интерфейсы сокетов низкого уровня, сетевые программисты обычно используют библиотеки сокетов. Двумя обычно используемыми библиотеками сокетов являются Berkeley Sockets для систем Linux / Unix и WinSock для систем Windows.

Библиотека сокетов предоставляет набор API-функций, аналогичных тем, которые программисты используют для работы с файлами, например open (), read (), write () и close ().

Ссылка на основную публикацию