Section: Manual del Programador de Linux (2)
Updated: julio 1999
Index Return to Main
Contents
send, sendto, sendmsg - envía un mensaje de un conector (socket)
int send(int s, const void *msg,
size_t len, int
flags);
int sendto(int s, const void *msg,
size_t len, int flags, const
struct sockaddr *to, socklen_t
tolen);
int sendmsg(int s, const struct msghdr
*msg, int flags);
, sendto y sendmsg son utilizados para transmitir un mensaje a otro conector. Send solo puede ser usado cuando un conector está en un estado connected mientras sendto y sendmsg pueden ser utilizados en cualquier momento.
La dirección de destino viene dada por to con tolen especificando su tamaño. La longitud del mensaje viene dada por len. Si el mensaje es demasiado largo para pasar automáticamente a través del protocolo inferior, se devuelve el error EMSGSIZE y el mensaje no es transmitido.
La llamada send lleva implícita el que no se indiquen los posibles errores en la entrega. Los errores detectados localmente se indican devolviendo un valor -1.
Cuando el mensaje no cabe en el buffer de envío del conector, send se bloquea, a no ser que el conector se haya colocado en el modo de E/S no bloqueante. En el modo no bloqueante devolvería EAGAIN en este caso. Se puede utilizar la llamada select(2) para determinar cuando es posible enviar más información.
El parámetro flags es una palabra de opciones y puede contener las siguientes opciones:
Vea recv(2) para una descripción de la estructura msghdr. Puede enviar información de control usando los miembros msg_control y msg_controllen. La longitud máxima del buffer de control que el núcleo puede procesar está limitada por conector por la sysctl net.core.optmem_max. Vea socket(7).
Las llamadas devuelven el numero de caracteres enviados, o -1 si ha ocurrido un error.
Estos son algunos errores estándares generados por la capa de conectores. Los módulos de los protocolos subyacentes pueden generar y devolver errores adicionales. Vea sus páginas de manual respectivas.
4.4BSD, SVr4, borrador POSIX 1003.1g (estas llamadas a función aparecieron en 4.2BSD).
Los prototipos indicados más arriba siguen `the Single Unix Specification', ya que glibc2 también lo hace; el argumento flags era `int' en BSD 4.* pero `unsigned int' en libc4 y libc5; el argumento len era `int' en BSD 4.* y libc4 pero `size_t' en libc5; el argumento tolen era `int' en BSD 4.*, libc4 y libc5. Vea también accept(2).
(2), recv(2), select(2), getsockopt(2), sendfile(2), socket(2), write(2), socket(7), ip(7), tcp(7), udp(7)
This document was created by man2html, using
the manual pages.
Time: 06:16:21 GMT, January 22, 2005