ВУЗ:
Составители:
Рубрика:
56
int
recv(SOCKET sock, char FAR *buf, int bufsize, int flags);
Функции
send
и
recv
возвращают количество соответственно принятых и
переданных байтов данных. Принимающее данные приложение должно вы-
зывать функцию
recv
в цикле до тех пор, пока не будут приняты все передан-
ные данные, при этом на один вызов функции
send
может приходиться не-
сколько вызовов функции
recv
.
В случае ошибки обе эти функции возвращают значение
SOCKET_ERROR
,
для тщательного анализа ошибки следует использовать функцию
WSAGetLastError
.
В нижерасположенной таблице приведен список кодов ошибок, которые
могут возникать при вызове функции
send:
Код ошибки Описание
WSANOTINITIALISED
Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN
Сбой в сети
WSAEACCES Указанный адрес является широковещательным (broadcast),
однако перед вызовом функции не был установлен соответ-
ствующий флаг
WSAEINTR
Выполнение функции было отменено при помощи функции
WSACancelBlockingCall
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEFAULT Параметр buf указан некорректно (он не указывает на адрес-
ное пространство, принадлежащее приложению)
WSAENETRESET
Необходимо сбросить соединение
WSAENOBUFS
Возникла блокировка буфера
WSAENOTCONN
Сокет не подсоединен
WSAENOTSOCK
Указанный в параметре дескриптор не указывает на сокет
WSAESHUTDOWN Сокет не был закрыт функцией shutdown
WSAEWOULDBLOCK
Сокет отмечен как неблокирующий, но запрошенная опера-
ция приведет к блокировке
WSAEMSGSIZE Был использован сокет типа SOCK_DGRAM (предназна-
ченный для передачи датаграмм), но при этом размер пакета
данных превышает максимально допустимый для данной
реализации интерфейса Windows Sockets
WSAEINVAL Сокет не был подключен функцией bind
WSAECONNABORTED
Сбой соединения из-за слишком большой задержки или по
другой причине
WSAECONNRESET
Разрыв соединения удаленным узлом сети
При выполнении функции
recv
могут возникнуть следующие ошибки:
int
recv(SOCKET sock, char FAR *buf, int bufsize, int flags);
Функции send и recv возвращают количество соответственно принятых и
переданных байтов данных. Принимающее данные приложение должно вы-
зывать функцию recv в цикле до тех пор, пока не будут приняты все передан-
ные данные, при этом на один вызов функции send может приходиться не-
сколько вызовов функции recv.
В случае ошибки обе эти функции возвращают значение SOCKET_ERROR,
для тщательного анализа ошибки следует использовать функцию
WSAGetLastError.
В нижерасположенной таблице приведен список кодов ошибок, которые
могут возникать при вызове функции send:
Код ошибки Описание
WSANOTINITIALISED Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN Сбой в сети
WSAEACCES Указанный адрес является широковещательным (broadcast),
однако перед вызовом функции не был установлен соответ-
ствующий флаг
WSAEINTR Выполнение функции было отменено при помощи функции
WSACancelBlockingCall
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEFAULT Параметр buf указан некорректно (он не указывает на адрес-
ное пространство, принадлежащее приложению)
WSAENETRESET Необходимо сбросить соединение
WSAENOBUFS Возникла блокировка буфера
WSAENOTCONN Сокет не подсоединен
WSAENOTSOCK Указанный в параметре дескриптор не указывает на сокет
WSAESHUTDOWN Сокет не был закрыт функцией shutdown
WSAEWOULDBLOCK Сокет отмечен как неблокирующий, но запрошенная опера-
ция приведет к блокировке
WSAEMSGSIZE Был использован сокет типа SOCK_DGRAM (предназна-
ченный для передачи датаграмм), но при этом размер пакета
данных превышает максимально допустимый для данной
реализации интерфейса Windows Sockets
WSAEINVAL Сокет не был подключен функцией bind
WSAECONNABORTED Сбой соединения из-за слишком большой задержки или по
другой причине
WSAECONNRESET Разрыв соединения удаленным узлом сети
При выполнении функции recv могут возникнуть следующие ошибки:
56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
