CAsyncSocket::SendToEx
Эта функция-член вызывается, чтобы отправить данные к определенной цели (адреса IP версии 6 дескрипторов).
int SendToEx(
const void* lpBuf,
int nBufLen,
UINT nHostPort,
LPCTSTR lpszHostAddress = NULL,
int nFlags = 0
);
Параметры
lpBuf
Буфер, содержащий данные для передачи.nBufLen
Длина данных в lpBuf в байтах.nHostPort
Порт, определяющие приложение сокета.lpszHostAddress
Сетевой адрес сокета, к которому этот объект подключения: имя компьютера в виде "ftp.microsoft.com" или предоставленный точки число как "128.56.22.8".nFlags
Определяет способ вызова. Семантика этой функции определяется параметрами сокета и параметром nFlags. Второй построен, объединяя любой после значений с оператором C++ OR:MSG_DONTROUTE Указывает, что данные не должны подлеубежать маршрутизации. Поставщик Windows sockets может игнорировать данный пометить.
MSG_OOB Отправляет экстренные данные (SOCK_STREAM ).
Возвращаемое значение
Если ошибка не возникает, то SendToEx возвращает общее число отправленных символов. (Обратите внимание, что это число может быть меньше количества, показанный nBufLen). В противном случае - значение SOCKET_ERROR, и возвращается конкретный код ошибки может быть получить, вызвав GetLastError. Об ошибке применяемых к данному функции-члену.
WSANOTINITIALISED А успешное AfxSocketInit должно произойти перед использованием этого API.
Реализация Windows WSAENETDOWN sockets обнаружила, что подсистема сети.
Запрошенный WSAEACCES адрес широковещательной адрес, но соответствующий пометить не был установлен.
WSAEINPROGRESS А операция блокировки Windows sockets выполняется.
WSAEFAULT Параметры lpBuf или lpSockAddr не является частью адресного пространства пользователя или аргумент lpSockAddr слишком мал (меньше, чем размер структуры SOCKADDR ).
WSAEINVAL Имя узла недопустимо.
WSAENETRESET Необходимо сбросить соединение, поскольку реализация Windows sockets удалила его.
WSAENOBUFS отчеты о реализации Windows sockets взаимоблокировка буфера.
WSAENOTCONN Сокет не подключено (SOCK_STREAM ).
Не WSAENOTSOCK дескриптор сокета.
WSAEOPNOTSUPP MSG_OOB указано, но сокет не является типом SOCK_STREAM.
WSAESHUTDOWN Сокет было деактивации; невозможно вызвать SendToEx на сокете после вызова ShutDown с nHow устанавливается значение 1 или 2.
WSAEWOULDBLOCK Сокет помечены как nonblocking и запрошенная операция запретитьTfа мере.
WSAEMSGSIZE Сокет типа SOCK_DGRAM, а каналы датаграмм превышает максимум, поддерживаемый в реализации Windows sockets.
Виртуальный WSAECONNABORTED канал будет прервана из-за истечения времени ожидания или другой ошибки.
Виртуальный WSAECONNRESET канал был сброшено удаленной стороной.
WSAEADDRNOTAVAIL Указанный адрес недоступен из локального компьютера.
Адреса WSAEAFNOSUPPORT в указанном семействе нельзя использовать с этим гнездом.
Целевой адрес WSAEDESTADDRREQ а не требуется.
WSAENETUNREACH Сеть становится недоступной из основного приложения в данное время.
Заметки
Этот метод аналогичен CAsyncSocket::SendTo за исключением того, что он обрабатывает адреса IP версии 6 и более ранние протоколов.
SendToEx используется на гнездах датаграммы или потока и используется для записи исходящие данные для сокета. Для сокетов датаграмм, необходимо соблюдать осторожность, превышения максимального размера пакета IP основных подсетей, который задается элементом iMaxUdpDg в структуре WSADATA заполнянной AfxSocketInit. Если данные, которые слишком длинны для передачи атомарным образом через базовый протокол, WSAEMSGSIZE возвращается ошибка и никакие данные не передаются.
Обратите внимание, что успешное завершение SendToEx указывает, что данные были успешно доставлены.
SendToEx используется только для сокета SOCK_DGRAM отправить датаграмма с определенным гнезду указанный параметром lpSockAddr.
Отправить широковещательной (на SOCK_DGRAM только) адреса в параметре lpSockAddr быть построено с помощью INADDR_BROADCAST специальный IP-адрес (указанный в файле заголовка WINSOCK.H Windows sockets) вместе с предназначенным номером порта. Если параметр lpszHostAddressNULL, сокет настроено для широковещательного. Обычно нецелесообразно для широковещательной датаграммы превышать размер, на котором фрагментация может произойти, которая подразумевает, что часть данных датаграмма (за исключением заголовков) не должна превышать 512 байт.
Требования
Header: afxsock.h