ВУЗ:
Составители:
Рубрика:
- 54 -
Функция передачи данных send имеет 4 параметра - дескриптор сокета
sock, на котором выполняется передача, адрес буфера buf, содержащего пе-
редаваемое сообщение, размер этого буфера bufsize и флаги flags
int send(SOCKET sock, const char FAR *buf, int bufsize, int flags);
Фрагмент исходного C-кода передачи данных серверу приведен ниже
char szBuf[80];
lstrcpy(szBuf, "Тестовая строка для передачи");
send(srv_socket, szBuf, lstrlen(szBuf), 0);
Параметры предназначенной для приема данных функции recv анало-
гичны параметрам функции send
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
Сокет не подсоединен
- 54 -
Функция передачи данных send имеет 4 параметра - дескриптор сокета
sock, на котором выполняется передача, адрес буфера buf, содержащего пе-
редаваемое сообщение, размер этого буфера bufsize и флаги flags
int send(SOCKET sock, const char FAR *buf, int bufsize, int flags);
Фрагмент исходного C-кода передачи данных серверу приведен ниже
char szBuf[80];
lstrcpy(szBuf, "Тестовая строка для передачи");
send(srv_socket, szBuf, lstrlen(szBuf), 0);
Параметры предназначенной для приема данных функции recv анало-
гичны параметрам функции send
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 Сокет не подсоединен
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »
