ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »