ВУЗ:
Составители:
Рубрика:
51
return;
}
Далее программа должна ожидать соединения, это может быть выполнено
двумя различными способами.
Первый способ заключается в циклическом вызове функции
accept
до тех
пор, пока не будет установлено соединение; затем можно приступить к обме-
ну данными.
Функция
accept
имеет следующий прототип:
SOCKET
accept(SOCKET sock, struct sockaddr FAR *addr, int FAR *addrlen);
Через параметр
sock передается идентификатор сокета, находящегося в
режиме приема для выполнения ожидания. Параметр
addr
должен содержать
адрес буфера, в который будет записан адрес узла, подключившегося к сер-
веру (размер этого буфера должен быть записан в целочисленной перемен-
ной, адрес которой передается через параметр
addrlen
).
Список возможных кодов ошибки для функции
accept
приведен ниже
Код ошибки Описание
WSANOTINITIALISED
Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN
Сбой в сети
WSAEFAULT Значение параметра addrlen меньше размера структуры ад-
реса
WSAEINTR
Выполнение функции было отменено при помощи функции
WSACancelBlockingCall
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL Перед вызовом функции accept не была вызвана функция
listen
WSAEMFILE
Нет доступных дескрипторов
WSAENOBUFS
Установлено слишком много соединений
WSAENOTSOCK
Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP
Данный тип сокета нельзя использовать при вызове функ-
ций, ориентированных на работу с каналом связи
WSAEWOULDBLOCK
Сокет отмечен как неблокирующий и в настоящее время нет
каналов связи, которые нужно устанавливать
Второй (более удачный) способ ожидания соединения заключается в ис-
пользовании расширения программного интерфейса
Windows Sockets
, предна-
значенного для выполнения асинхронных операций.
return;
}
Далее программа должна ожидать соединения, это может быть выполнено
двумя различными способами.
Первый способ заключается в циклическом вызове функции accept до тех
пор, пока не будет установлено соединение; затем можно приступить к обме-
ну данными.
Функция accept имеет следующий прототип:
SOCKET
accept(SOCKET sock, struct sockaddr FAR *addr, int FAR *addrlen);
Через параметр sock передается идентификатор сокета, находящегося в
режиме приема для выполнения ожидания. Параметр addr должен содержать
адрес буфера, в который будет записан адрес узла, подключившегося к сер-
веру (размер этого буфера должен быть записан в целочисленной перемен-
ной, адрес которой передается через параметр addrlen).
Список возможных кодов ошибки для функции accept приведен ниже
Код ошибки Описание
WSANOTINITIALISED Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN Сбой в сети
WSAEFAULT Значение параметра addrlen меньше размера структуры ад-
реса
WSAEINTR Выполнение функции было отменено при помощи функции
WSACancelBlockingCall
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL Перед вызовом функции accept не была вызвана функция
listen
WSAEMFILE Нет доступных дескрипторов
WSAENOBUFS Установлено слишком много соединений
WSAENOTSOCK Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP Данный тип сокета нельзя использовать при вызове функ-
ций, ориентированных на работу с каналом связи
WSAEWOULDBLOCK Сокет отмечен как неблокирующий и в настоящее время нет
каналов связи, которые нужно устанавливать
Второй (более удачный) способ ожидания соединения заключается в ис-
пользовании расширения программного интерфейса Windows Sockets, предна-
значенного для выполнения асинхронных операций.
51
Страницы
- « первая
- ‹ предыдущая
- …
- 49
- 50
- 51
- 52
- 53
- …
- следующая ›
- последняя »
