CAsyncSocket::SendToEx
Volání funkce tohoto člena odeslat data na daný cíl (popisovačů adresy IPv6).
int SendToEx(
const void* lpBuf,
int nBufLen,
UINT nHostPort,
LPCTSTR lpszHostAddress = NULL,
int nFlags = 0
);
Parametry
lpBuf
Vyrovnávací paměť obsahuje data předávají.nBufLen
Délka dat v lpBuf v bajtech.nHostPort
Port označující aplikaci soketu.lpszHostAddress
Síťová adresa soketu, ke kterému je připojen tento objekt: název počítače, například "ftp.microsoft.com" nebo tečkovaný číslo jako "128.56.22.8".nFlags
Určuje způsob při volání.Sémantika této funkce, které jsou určeny možnosti soketu a nFlags parametr.Vyrobeno kombinací následujících hodnot s C++ OR operátor:MSG_DONTROUTE Určuje, že data by neměly být předmětem směrování.Rozhraní Windows Sockets dodavatele můžete ignorovat tento příznak.
MSG_OOB out-of-band data odeslat (SOCK_STREAM pouze).
Vrácená hodnota
Pokud nedojde k žádné chybě, SendToEx vrátí celkový počet odeslaných znaků.(Všimněte si, že to může být nižší než číslo podle nBufLen .) Jinak hodnota SOCKET_ERROR je vrácena a chybový kód získat voláním GetLastError.Tato funkce člena vztahuje následující chyby:
WSANOTINITIALISED úspěšné AfxSocketInit musí dojít před použitím tohoto rozhraní API.
WSAENETDOWN implementace rozhraní Windows Sockets zjistil, že selhání síťového podsystému.
WSAEACCES požadovaná adresa je adresa všesměrového vysílání, ale nebyla nastavena odpovídající příznak.
WSAEINPROGRESS právě probíhá blokující operace rozhraní Windows Sockets.
WSAEFAULT lpBuf nebo lpSockAddr parametry nejsou součástí adresního prostoru uživatele nebo lpSockAddr argument je příliš malá (menší než velikost SOCKADDR struktury).
WSAEINVAL je neplatný název hostitele.
WSAENETRESET připojení nutné obnovit, protože implementace rozhraní Windows Sockets je zrušen.
WSAENOBUFSImplementace rozhraní Windows Sockets hlásí zablokování vyrovnávací paměti.
WSAENOTCONN soket není připojen (SOCK_STREAM pouze).
WSAENOTSOCK popisovač není soket.
WSAEOPNOTSUPP MSG_OOB byla zadána, ale soketu není typu SOCK_STREAM.
WSAESHUTDOWN soketu byl ukončen; není možné volat SendToEx na soketu po ShutDown vyvolal s nHow na hodnotu 1 nebo 2.
WSAEWOULDBLOCK soketu je označen jako neblokový a požadovaná operace by blokování.
WSAEMSGSIZE typ soketu je SOCK_DGRAM, a datagram je větší než maximální podporovaných implementací rozhraní Windows Sockets.
WSAECONNABORTED virtuální okruh byl přerušen z důvodu vypršení časového limitu nebo jiného selhání.
WSAECONNRESET virtuální okruh byla obnovena vzdálenou stranou.
WSAEADDRNOTAVAIL zadaná adresa není k dispozici z místního počítače.
WSAEAFNOSUPPORT tomto soketu nelze použít řady zadané adresy.
WSAEDESTADDRREQ je vyžadována cílová adresa.
WSAENETUNREACH sítě nelze v tuto chvíli dosáhnout z tohoto hostitele.
Poznámky
Tato metoda je stejná jako CAsyncSocket::SendTo , zpracovává IPv6 adresy i starší protokoly.
SendToExje použit na soketech datagram nebo proudu a slouží k zápisu odchozích dat na soket.Pro datagram sockets musí věnovat nepřesahující maximální velikost paketu IP podkladové podsítí, což je dáno iMaxUdpDg prvek WSADATA struktury vyplňuje AfxSocketInit.Pokud se data atomicky projít základní protokol chyba příliš dlouho WSAEMSGSIZE je vrácena a přenášena žádná data.
Všimněte si, že úspěšné dokončení SendToEx neznamená data byla úspěšně doručena.
SendToExpoužívat pouze v SOCK_DGRAM soketu odeslat datagram konkrétní soketu identifikován lpSockAddr parametr.
Odeslat vysílání (na SOCK_DGRAM pouze), adresu v lpSockAddr parametr měla být tvořena pomocí adresy IP zvláštní INADDR_BROADCAST (definované v rozhraní Windows Sockets záhlaví souborů rozhraní WINSOCK.H) společně s určeným portem.Nebo pokud lpszHostAddress je parametr NULL, soketu je nakonfigurován pro vysílání.Není obecně vhodné pro vysílání datagram překročí velikost, jakou může dojít k fragmentaci, což naznačuje, že datová část datagram (s výjimkou záhlaví) nesmí překročit 512 bajtů.
Požadavky
Záhlaví: afxsock.h