ВУЗ:
Составители:
Рубрика:
- 48 -
при помощи функции WSAGetLastError, возможные коды ошибок перечис-
лены ниже
Код ошибки Описание
WSANOTINITIALISED
Перед использование функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN
Сбой в сети
WSAEADDRINUSE
Указанный адрес уже используется
WSAEFAULT Значение параметра namelen меньше размера структуры
sockaddr
WSAINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEAFNOSUPPORT
Выбранный протокол не может работать с указанным семей-
ством адресов
WSAEINVAL
Сокет уже привязан к адресу
WSAENOBUFS
Установлено слишком много соединений
WSAENOTSOCK
Указанный в параметре дескриптор не является дескрипто-
ром сокета
Пример вызова функции bind показан ниже
if (bind(srv_socket, (LPSOCKADDR) &srv_address,
sizeof(srv_address)) == SOCKET_ERROR)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции Bind", "Error", MB_OK);
return;
}
6.6.СОЗДАНИЕ КАНАЛА СВЯЗИ
В случае передачи датаграммных сообщений при помощи протокола не-
гарантированной доставки UDP канал связи не нужен и сразу после создания
сокетов и их инициализации можно приступать к передаче данных. Однако
при использовании протокола гарантированной доставки TCP необходимо
создать канал связи.
6.6.1.СТОРОНА СЕРВЕРА
При создании
канала связи со стороны сервера прежде всего следует пе-
реключить сокет в режим приема для выполнения ожидания соединения с
клиентом при помощи функции listen
- 48 - при помощи функции WSAGetLastError, возможные коды ошибок перечис- лены ниже Код ошибки Описание WSANOTINITIALISED Перед использование функции необходимо вызвать функ- цию WSAStartup WSAENETDOWN Сбой в сети WSAEADDRINUSE Указанный адрес уже используется WSAEFAULT Значение параметра namelen меньше размера структуры sockaddr WSAINPROGRESS Выполняется блокирующая функция интерфейса Windows Sockets WSAEAFNOSUPPORT Выбранный протокол не может работать с указанным семей- ством адресов WSAEINVAL Сокет уже привязан к адресу WSAENOBUFS Установлено слишком много соединений WSAENOTSOCK Указанный в параметре дескриптор не является дескрипто- ром сокета Пример вызова функции bind показан ниже if (bind(srv_socket, (LPSOCKADDR) &srv_address, sizeof(srv_address)) == SOCKET_ERROR) { closesocket(srv_socket); MessageBox(NULL, "Ошибка функции Bind", "Error", MB_OK); return; } 6.6.СОЗДАНИЕ КАНАЛА СВЯЗИ В случае передачи датаграммных сообщений при помощи протокола не- гарантированной доставки UDP канал связи не нужен и сразу после создания сокетов и их инициализации можно приступать к передаче данных. Однако при использовании протокола гарантированной доставки TCP необходимо создать канал связи. 6.6.1.СТОРОНА СЕРВЕРА При создании канала связи со стороны сервера прежде всего следует пе- реключить сокет в режим приема для выполнения ожидания соединения с клиентом при помощи функции listen
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »