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 );

Valeur de retour

Si aucune erreur ne survient, SendTo retourne le nombre total de caractères envoyé. (Notez que cela peut être inférieur au nombre indiqué par nBufLen). Sinon, la valeur SOCKET_ERROR est retournée, et un code d'erreur spécifique peut être récupéré par appeler GetLastError. Les erreurs suivantes s'appliquent à cette fonction membre:

Paramètres

lpBuf

Une mémoire tampon contenant les données devant être transmises.

nBufLen

La longueur des données dans lpBuf en octets.

nHostPort

Le port d'identifier la demande de la socket.

lpszHostAddress

L'adresse réseau du socket sur lequel cet objet est connecté : un nom de machine comme « site FTP.Microsoft.com », ou un nombre pointé comme « 128.56.22.8 ».

nFlags

Spécifie la manière dont l'appel est effectué. La sémantique de cette fonction est déterminée par les options de socket et le paramètre nIndicateurs . Ce dernier est construit en combinant l'une des valeurs suivantes à l'opérateur C++ ou:

lpSockAddr

Un pointeur vers une structure SOCKADDR qui contient l'adresse de la socket de cible.

nSockAddrLen

La longueur de l'adresse en lpSockAddr en octets.

Remarques

Appelez cette fonction membre pour envoyer des données vers une destination spécifique. SendTo est utilisé sur les sockets datagramme ou cours d'eau et est utilisé pour écrire les données sortantes sur un socket. Pour les sockets datagramme, il faut ne devant ne pas dépasser la IP paquet taille maximale des sous-réseaux sous-jacente, qui est donnée par l'élément iMaxUdpDg dans la structure WSADATA remplie par AfxSocketInit. Si les données sont trop longues pour traverser atomiquement le protocole sous-jacent, l'erreur WSAEMSGSIZE est retourné et aucune donnée n'est transmise.

Notez que la réussite d'un SendTo n'indique pas que les données a été livrées avec succès.

Envoyer à n'est utilisé sur un socket SOCK_DGRAM pour envoyer un datagramme à un socket spécifique identifié par le paramètre lpSockAddr.

Pour envoyer une émission (sur un SOCK_DGRAM seulement), l'adresse dans le paramètre lpSockAddr devrait être construit à l'aide de l'adresse IP spéciale INADDR_BROADCAST (définie dans le fichier d'en-tête Windows Sockets WINSOCK.H) avec le numéro de port prévu. Ou, si le paramètre lpszHostAddress est NULL, le socket est configuré pour être diffusé. Il est généralement déconseillé pour un datagramme diffusion dépasser la taille à laquelle la fragmentation peut se produire, ce qui implique que la portion de données du datagramme (sauf les en-têtes) ne doit pas dépasser 512 octets.

Aperçu de CAsyncSocket |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CAsyncSocket::Create, CAsyncSocket::Receive, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index