Шаг 1 - Что такое Windows Sockets

WinSock или Windows socket - это интерфейс программного программирования (API) созданный для реализации приложений в сети на основе протокола TCP/IP. То есть это просто группа функций !!!! Для работы используется WSOCK32.DLL.

Программа
WSOCK32.DLL
TCP/IP

Практически это интерфейс к протоколу TCP/IP.

При взаимодействии клиент - сервер в сети каждого участника взаимодействия можно рассматривать как конечную точку. Сокет это вроде как и есть эта конечная точка. В приложении Вы определяете сокет. И хоть программирование сокетов в UNIX и Windows похоже, мы с Вами будем рассматривать именно Windows socket.

Незнаю интересно это или нет, но Windows socket разрабатывался на основе интерфейса Беркли для UNIX, но к ним добавлены функции поддержки событий Windows.

Есть две версии WinSock

Спецификация WinSock разделяет функции на три типа:

  1. Функции Беркли
  2. Информационные функции (получение информации о наименовании доменов, службах, протоколах Internet)
  3. Расширения Windows для функций Беркли

Все функции могут быть блокирующие и неблокирующие. Обычно блокирующие это функции Беркли. То есть при работе такой функции нельзя выполнять другие функции WinSock.

Давайте расмотрим как производится подключение к серверу. Сначала программа подключается к адресу IP с созданием сокета. Программа будет ждать подключения. Для подключения программа клиент тоже создает сокет и пытается подключиться к сокету сервера. Но сервер не спит !!! Только он увидит попытку подключения он создаст новый сокет. И этот новый сокет будет использоваться для взаимодействия с клиентом. А тот, к которому была попытка подключения будет ждать следующего. На этой основе производится взаимодействие сервера и многими программами.

Сам сокет может быть создан на основе:

  1. TCP (transport control protocol) - надежное соединение
  2. UDP (user datagram protocol) - ненадежное соединения

Следующий Шаг | Оглавление
Автор Каев Артем.