Itnewsrussia.ru

Анализ современных технологий

Основные понятия. Сокеты и библиотека WinSock

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

Основной принцип технологии "клиент-сервер" заключается в разделении функций приложения на три группы:

ввод и отображение данных (взаимодействие с пользователем);

прикладные функции, характерные для данной предметной области;

функции управления ресурсами (файловой системой, базой данных и т.д.)

Поэтому, в любом приложении выделяются следующие компоненты:

компонент представления данных

прикладной компонент

компонент управления ресурсом

Связь между компонентами осуществляется по определенным правилам, которые называют "протокол взаимодействия".

Со́кеты (англ. socket - углубление, гнездо, разъём) - название программного интерфейса для обеспечения обмена данными между процессами Процессы при таком обмене могут исполняться как на одной ЭВМ , так и на различных ЭВМ, связанных между собой сетью . Сокет - абстрактный объект, представляющий конечную точку соединения.

Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети , а серверные - с коммутаторами . Клиентское приложение (например, браузер ) использует только клиентские сокеты, а серверное (например, веб-сервер , которому браузер посылает запросы) - как клиентские, так и серверные сокеты. Сокеты позволяют независимо от протокола передачи данных организовать сетевой интерфейс между двумя компьютерами в сети. В частности, сокеты могут работать как с протоколом TCP, так и с протоколом UDP. Обращаться к сокету можно по IP-адресу хост-машины и номеру порта. Сокеты нашли широкое применение во многих сетевых приложениях. Большинство современных операционных систем (такие как Windows, Unix, Linux) поддерживает сокеты на уровне встроенных в ядро библиотек. Различают сокеты с установлением соединения (т. Е. адреса гнезд отправителя и получателя выясняются заранее, до передачи сообщений между ними - устанавливается так называемый виртуальный канал между двумя хостами в сети) и без установления соединения (адреса сокетов отправителя и получателя передаются с каждым пересылаемым сообщением). Для каждого сокета назначается тип, посредством которого определяется способ передачи данных между двумя сокетами. Тип сокета с установлением соединения - это виртуальный канал, а тип сокета без установления соединения - дейтаграмма. В первом случае для передачи данных используется протокол TCP, во втором - UDP. Следовательно, надежность передачи данных в случае дейтаграммных сокетов ниже, зато они работают быстрее виртуальных каналов. Сокеты с установлением соединения взаимодействуют по схеме клиент/сервер: серверному сокету назначается общеизвестный адрес, и оно непрерывно ожидает прибытия клиентских сообщений. Клиентский процесс посылает сообщения на сервер по объявленному адресу серверного сокета.

Все функции работы с сокетами описаны в заголовочном файле winsock2.h. Для успешной сборки программы в опциях компоновщика необходимо указать подключаемую библиотеку ws2_32.lib. Для начала работы с сетью необходимо проинициализировать библиотеку ws2_32. Для этого используется следующая функция: int WSAStartup (unsigned int wVersionRequested, struct WSAData *lpWSAData). Эта функция должна вызываться в самом начале программы, работающей с сокетами. Аргумент wVersionRequested должен содержать значение максимального номера версии библиотеки гнезд, требуемой для корректной работы программы. Функция анализирует переданное ей значение и, если оно меньше либо равно версии библиотеки Ws2_32.dll, то возвращает 0, что соответствует успешной инициализации. В противном случае функция возвращает ненулевое значение, означающее, что данная версия не поддерживается в текущей реализации библиотеки сокетов. Аргумент wVersionRequested формируется из двух байт при помощи макроса MAKEWORD (x,y). Для успешного выполнения функции WSAStartup необходимо в этом аргументе передать указатель на существующую структуру типа WSAData. Перейти на страницу: 1 2

Популярное:

Генерирование случайных колебаний LC-автогенератором в жестком режиме возбуждения автогенератор транзистор колебание Современная наука и техника широко пользуются незатухающими колебаниями. Более того, само развитие радиосвязи, электроакустики, телевидения и многих других отделов новой техники стало возможным только после открытия и изучения систем, могущих генерировать незатухающие колебания за счёт источ ...