2 * Javier Abellán, 20 Junio 2000
4 * Funciones de lectura y escritura de la librería de sockets.
7 * 4 de Septiembre de 2003. Añadidas funciones Lee_Socket_Udp(),
8 * Escribe_Socket_Udp() y Dame_Direccion_Udp()
13 #include <sys/socket.h>
24 int ReadTcpSocket(int fd, char **msg);
25 int WriteTcpSocket(int fd, struct *Datos);
40 int ReadTcpSocket (int fd, char **Datos);
41 int WriteTcpSocket (int fd, int type, int command, char *Datos);
43 /** Lee Datos de tamaño Longitud de un socket cuyo descriptor es fd.
44 * Devuelve el numero de bytes leidos o -1 si ha habido error */
45 int Lee_Socket1 (int fd, char *Datos, int Longitud);
47 /** Envia Datos de tamaño Longitud por el socket cuyo descriptor es fd.
48 * Devuelve el número de bytes escritos o -1 si ha habido error. */
49 int Escribe_Socket (int fd, char *Datos, int Longitud);
51 /** Lee un mensaje de un socket UDP.
52 * Se le pasa el descriptor fd del socket que atiende los mensajes.
53 * Se le pasa uns estructura sockaddr que nos devolverá rellena con los datos del que nos
54 * ha enviado el mensaje, de forma que podamos responderle.
55 * Se le pasa el tamaño de la estructura Remoto. En la misma variable nos devolverá el
56 * tamaño de los datos devueltos.
57 * Se le pasa un buffer de datos para el mensaje y el tamaño en bytes que deseamos leer.
59 int Lee_Socket_Udp (int fd, struct sockaddr *Remoto, socklen_t *Longitud_Remoto,
60 char *Datos, int Longitud_Datos);
62 /** Envia un mensaje por un socket UDP
63 * Se le pasa el descriptor de socket por el que debe enviar.
64 * Se le pasa el destinatario del mensaje en una estructura Remoto.
65 * Se le pasa el tamaño de dicha estructura en Longitud_Remoto.
66 * Se le pasa el buffer de datos que debe enviar en Datos.
67 * Se le pasa la longitud del buffer de datos en Longitud.
68 * Devuelve el número de bytes enviados o -1 si ha habido algún error.
70 int Escribe_Socket_Udp (int fd, struct sockaddr *Remoto,
71 socklen_t Longitud_Remoto, char *Datos, int Longitud);
74 * Rellena una estructura sockaddr_in con los datos que se le pasan. Esta estrutura es
75 * útil para el envio o recepción de mensajes por sockets Udp o para abrir conexiones.
76 * Se le pasa el host. Puede ser NULL (para abrir socket servidor Udp o para recepción de
77 * mensajes de cualquier host).
78 * Se le pasa el servicio. Puede ser NULL (para abrir socket cliente Udp).
79 * Se le pasa una estructura sockaddr_in que devolverá rellena.
80 * Se le pasa una Longitud. Debe contener el tamaño de la estructura sockaddr_in y
81 * devolverá el tamaño de la estructura una vez rellena.
82 * Devuelve -1 en caso de error.
84 int Dame_Direccion_Udp (char *Host, char *Servicio, struct sockaddr_in *Servidor,