Программное обеспечение компьютерных сетей и информационных систем. Баканов В.М. - 48 стр.

UptoLike

Составители: 

- 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