ВУЗ:
Составители:
Рубрика:
- 42 -
Некоторые функции интерфейса Windows Sockets способны блокиро-
вать работу приложения, т.к. не возвращают управления вызывающей про-
грамме до своего завершения. В использующих вытесняющую многозадач-
ность ОС (таких, как Windows’95x и Windows’NT) это не приводит к блоки-
ровке всей системы, однако можно избежать блокирующих функций путем
использования предоставляемых Windows Sockets асинхронных аналогов
этих функций
.
6.2.СОЗДАНИЕ И ИНИЦИАЛИЗАЦИЯ СОКЕТА
После инициализации интерфейса Windows Sockets приложение должно
создать один или несколько сокетов, которые будут использованы для пере-
дачи данных.
Сокет создается с помощью функции socket, имеющей следующий про-
тотип:
SOCKET
socket(int af, int type, int protocol);
Параметр af определяет формат адреса. Для этого параметра следует
указывать значение AF_INET, что соответствует формату адреса, принятому
в InterNet. Параметры type и рrоtосоl определяют соответственно тип сокета
и протокол, который будет использован для данного сокета, можно указывать
сокеты следующих двух типов
Тип сокета Описание
SOCK_STREAM
Сокет будет использован для передачи данных через канал связи
с использование протокола TCP
SOCK_DGRAM
Передача данных будет выполняться без создания каналов связи
через датаграммный протокол UDP
Что же касается параметра protocol, то для него следует указать нулевое
значение.
В случае успеха функция socket возвращает дескриптор (тип SOCKET),
который следует использовать для выполнения всех операций над данным
сокетом; имеется прямая аналогия между дескрипторами файла и сокета, од-
нако над последним не определены некоторые (физически недопустимые для
сокета)
операции (например, позиционирование указателя в потоке). Если же
произошла ошибка, функция socket возвращает значение
INVALID_SOCKET. Для анализа причины ошибки следует вызвать функ-
цию WSAGetLastError, которая в данном случае может вернуть один из
следующих кодов ошибки
- 42 - Некоторые функции интерфейса Windows Sockets способны блокиро- вать работу приложения, т.к. не возвращают управления вызывающей про- грамме до своего завершения. В использующих вытесняющую многозадач- ность ОС (таких, как Windows’95x и Windows’NT) это не приводит к блоки- ровке всей системы, однако можно избежать блокирующих функций путем использования предоставляемых Windows Sockets асинхронных аналогов этих функций. 6.2.СОЗДАНИЕ И ИНИЦИАЛИЗАЦИЯ СОКЕТА После инициализации интерфейса Windows Sockets приложение должно создать один или несколько сокетов, которые будут использованы для пере- дачи данных. Сокет создается с помощью функции socket, имеющей следующий про- тотип: SOCKET socket(int af, int type, int protocol); Параметр af определяет формат адреса. Для этого параметра следует указывать значение AF_INET, что соответствует формату адреса, принятому в InterNet. Параметры type и рrоtосоl определяют соответственно тип сокета и протокол, который будет использован для данного сокета, можно указывать сокеты следующих двух типов Тип сокета Описание SOCK_STREAM Сокет будет использован для передачи данных через канал связи с использование протокола TCP SOCK_DGRAM Передача данных будет выполняться без создания каналов связи через датаграммный протокол UDP Что же касается параметра protocol, то для него следует указать нулевое значение. В случае успеха функция socket возвращает дескриптор (тип SOCKET), который следует использовать для выполнения всех операций над данным сокетом; имеется прямая аналогия между дескрипторами файла и сокета, од- нако над последним не определены некоторые (физически недопустимые для сокета) операции (например, позиционирование указателя в потоке). Если же произошла ошибка, функция socket возвращает значение INVALID_SOCKET. Для анализа причины ошибки следует вызвать функ- цию WSAGetLastError, которая в данном случае может вернуть один из следующих кодов ошибки
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »