СОЗДАНИЕ И ИНИЦИАЛИЗАЦИЯ СОКЕТА Методическое пособие по дисциплине «Программное обеспечение компьютерных сетей и информационных систем»
После инициализации интерфейса Windows Sockets приложение должно создать один или несколько сокетов, которые будут использованы для передачи данных.
Сокет создается с помощью функции socket, имеющей следующий прототип: SOCKET socket(int af, int type, int protocol);
Параметр af определяет формат адреса. Для этого параметра следует указывать значение AF_INET, что соответствует формату адреса, принятому в InterNet. Параметры type и рrоtосоl определяют соответственно тип сокета и протокол, который будет использован для данного сокета, можно указывать сокеты следующих двух типов
Что же касается параметра protocol, то для него следует указать нулевое значение.
В случае успеха функция socket возвращает дескриптор (тип SOCKET), который следует использовать для выполнения всех операций над данным сокетом; имеется прямая аналогия между дескрипторами файла и сокета, однако над последним не определены некоторые (физически недопустимые для сокета) операции (например, позиционирование указателя в потоке). Если же произошла ошибка, функция socket возвращает значение INVALID_SOCKET.
Для анализа причины ошибки следует вызвать функцию WSAGetLastError, которая в данном случае может вернуть один из следующих кодов ошибки
Ниже приведен фрагмент кода, в котором создается сокет для передачи данных с использование протокола TCP
При практическом программировании после выявления ошибки выполнения функции следует сразу же вызвать функцию WSAGetLastError и некоторым образом информировать пользователя о конкретной причине ошибки.
УДАЛЕНИЕ СОКЕТА Для освобождения ресурсов приложение должно закрывать сокеты, которые ему больше не нужны, вызывая функцию closesocket int closesocket(SOCKET sock);
Ниже перечислены коды ошибок для этой функции
Литература 1. Чепмен Д. и др. Разработка InterNet-приложений в DELPHI 2. -Киев.:DiaSoft, c. 2. Елманова Н.З. Borland C++Builder (архитектура клиент/сервер, многозвенные системы, InterNet- приложения). -M.: Диалог-МИФИ, c. 3. Зайцев С.С. Описание и реализация протоколов сетей ЭВМ. -М.: Наука, c. 4. Клейнрок Л. Вычислительные системы с очередями. Пер. с англ. -М.: Мир, c. 5. Фролов А.В., Фролов Г.В. Локальные сети персональных компьютеров(монтаж сети, установка программного обеспечения). Библиотека системного программиста, т.7. M.: Диалог-МИФИ, c.