CAsyncSocket::SendTo

int SendTo ( const void * lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 );

int SendTo ( const void * lpBuf, int nBufLen, const SOCKADDR * lpSockAddr, int nSockAddrLen, int nFlags = 0 );

Valore restituito

Se si verifica alcun errore, SendTo restituisce il numero totale di caratteri inviati. (Si noti che questo pu essere inferiore al numero indicato dal nBufLen). In caso contrario, viene restituito un valore di SOCKET_ERROR , e un codice di errore specifico pu essere recuperato chiamando GetLastError. I seguenti errori si applicano a questa funzione membro:

Parametri

lpBuf

Un buffer contenente i dati da trasmettere.

nBufLen

La lunghezza dei dati di lpBuf in byte.

nHostPort

Il porto di identificare l'applicazione di presa.

lpszHostAddress

L'indirizzo di rete del socket a cui collegato questo oggetto: un nome macchina come "ftp.microsoft.com" o un numero con punti, come "128.56.22.8".

nFlags

Specifica il modo in cui viene effettuata la chiamata. La semantica di questa funzione determinata dalle opzioni del socket e il parametro nFlags . Quest'ultimo viene creato combinando uno qualsiasi dei seguenti valori con l'operatore C++ o:

lpSockAddr

Un puntatore a una struttura SOCKADDR che contiene l'indirizzo del socket destinazione.

nSockAddrLen

La lunghezza dell'indirizzo in lpSockAddr in byte.

Osservazioni

Chiamare questa funzione membro per inviare dati a una destinazione specifica. SendTo viene utilizzato su socket di datagramma o stream e viene utilizzato per scrivere dati in uscita su un socket. Per i socket di datagramma, deve prestare attenzione non deve superare la dimensione massima IP packet le subnet sottostante, che dato dall'elemento nella struttura WSADATA compilata da AfxSocketInit iMaxUdpDg . Se i dati sono troppo lunghi atomicamente passare attraverso il protocollo sottostante, viene restituito l'errore WSAEMSGSIZE e nessun dato viene trasmessa.

Si noti che il completamento di un SendTo non indica che stati recapitati correttamente i dati.

SendTo viene utilizzato solo su un socket SOCK_DGRAM per inviare un datagramma su un socket specifico identificato dal parametro lpSockAddr.

Per inviare una trasmissione (su un SOCK_DGRAM ), l'indirizzo nel parametro lpSockAddr dovrebbe essere costruito usando l'indirizzo IP speciale INADDR_BROADCAST (definito nel file di intestazione Windows Sockets WINSOCK.H) insieme con il numero della porta di destinazione. Oppure, se il parametro lpszHostAddress NULL, il socket configurato per il broadcast. Esso generalmente sconsigliabile per un datagramma broadcast da superare la dimensione in cui pu verificarsi la frammentazione, che implica che la parte di dati del datagramma (escluse le intestazioni) non superi i 512 byte.

CAsyncSocket panoramica |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;CAsyncSocket::Create, CAsyncSocket::Receive, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index