ВУЗ:
Составители:
Рубрика:
50
В случае передачи датаграммных сообщений при помощи протокола нега-
рантированной доставки UDP канал связи не нужен и сразу после создания
сокетов и их инициализации можно приступать к передаче данных. Однако
при использовании протокола гарантированной доставки TCP необходимо
создать канал связи.
6.6.1 Сторона сервера
При создании канала связи со стороны сервера прежде
всего следует пере-
ключить сокет в режим приема для выполнения ожидания соединения с кли-
ентом при помощи функции
listen:
int
listen(SOCKET sock, int backlog);
Через параметр
sock
функции необходимо передать дескриптор сокета, ко-
торый будет использован для создания сокета, параметр
backlog
задает мак-
симальный размер очереди для ожидания соединения (можно указывать зна-
чения от 1 до 5). Очередь содержит запросы на установку соединений для
каждой пары значений (IP-адрес, порт). Ниже приведен список возможных
кодов ошибок для функции
listen
Код ошибки Описание
WSANOTINITIALISED
Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN
Сбой в сети
WSAEADDRINUSE
Указанный адрес уже используется
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL
Сокет еще не был привязан к адресу или уже находится в
подключенном состоянии
WSAEISCONN
Сокет уже находится в подключенном состоянии
WSAEMFILE
Нет доступных дескрипторов
WSAENOBUFS
Недостаток памяти для размещения буфера
WSAENOTSOCK
Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP Функция listen не может работать с сокетом указанного типа
Ниже приведен пример вызова функции
listen:
if (listen(srv_socket, 1) == SOCKET_ERROR)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции Listen", "Error", MB_OK);
В случае передачи датаграммных сообщений при помощи протокола нега-
рантированной доставки UDP канал связи не нужен и сразу после создания
сокетов и их инициализации можно приступать к передаче данных. Однако
при использовании протокола гарантированной доставки TCP необходимо
создать канал связи.
6.6.1 Сторона сервера
При создании канала связи со стороны сервера прежде всего следует пере-
ключить сокет в режим приема для выполнения ожидания соединения с кли-
ентом при помощи функции listen:
int
listen(SOCKET sock, int backlog);
Через параметр sock функции необходимо передать дескриптор сокета, ко-
торый будет использован для создания сокета, параметр backlog задает мак-
симальный размер очереди для ожидания соединения (можно указывать зна-
чения от 1 до 5). Очередь содержит запросы на установку соединений для
каждой пары значений (IP-адрес, порт). Ниже приведен список возможных
кодов ошибок для функции listen
Код ошибки Описание
WSANOTINITIALISED Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN Сбой в сети
WSAEADDRINUSE Указанный адрес уже используется
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL Сокет еще не был привязан к адресу или уже находится в
подключенном состоянии
WSAEISCONN Сокет уже находится в подключенном состоянии
WSAEMFILE Нет доступных дескрипторов
WSAENOBUFS Недостаток памяти для размещения буфера
WSAENOTSOCK Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP Функция listen не может работать с сокетом указанного типа
Ниже приведен пример вызова функции listen:
if (listen(srv_socket, 1) == SOCKET_ERROR)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции Listen", "Error", MB_OK);
50
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »
