#include <netinet/in.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include "lib.h"#include "uuid.h"Go to the source code of this file.
Classes | |
| union | IPv4 |
| Tipo para un IPv4 Ademas te ayuda convertir entre little endian y big endian. More... | |
| struct | Enchufe |
| Enchufe para la conexion. More... | |
| struct | Receptaculo |
| Receptaculo para la conexion. More... | |
| struct | Command |
| Estructura para enviar distintos Command's por el socket. More... | |
Typedefs | |
| typedef int | FD |
| File descriptor. | |
| typedef uint16_t | Port |
| El puerto de la conexion. | |
Functions | |
| Buffer | IPv4_serialize (IPv4 ip) |
| Convierte un IPv4 a un Buffer. | |
| IPv4 | IPv4_deserialize (Buffer buf) |
| Convierte un Buffer a un IPv4. | |
| FD | nuevo (void) |
| Crea un file descriptor nuevo para un enchufe. | |
| Receptaculo | receptaculo (IPv4 ip, Port port) |
| Crea un receptaculo. | |
| Enchufe | aplasta (FD fd, Receptaculo rec) |
| Coge un file descriptor y un receptaculo y los junta. | |
| Enchufe | enchufa (IPv4 ip, Port port) |
| Crea un enchufe sin abrir la conexion. | |
| void | conecta (Enchufe enchufe) |
| Crea la conexion desde tu computadora hasta donde sea que este el enchufe. | |
| void | amarra (Enchufe enchufe) |
| Amarra la direccion de IP que se le dio al enchufe, al file descriptor. | |
| void | escucha (Enchufe enchufe, size_t len) |
| Le deja saber al enchufe cuantas conexiones se pueden hacer. | |
| Enchufe | acepta (Enchufe enchufe) |
| Bloquea el thread hasta que un cliente se conecte. | |
| void | zumba (Enchufe enchufe, Buffer in_buf) |
| Envia un buffer de bytes a un cliente. | |
| size_t | recibe (Enchufe enchufe, Buffer out_buf) |
| Recibe un buffer de bytes de un cliente. | |
| void | desenchufa (Enchufe enchufe) |
| Esta funcion se encarga de liberar los recursos que ocupan los echufes. | |
| Buffer | Port_serialize (Port port) |
| Convierte un puerto a Byte's. | |
| Port | Port_deserialize (Buffer buf) |
| Convierte un Buffer a un puerte. | |
| IPv4 | parse_address (Str str) |
| Esta funcion convierte un string que representa un IPv4 en un IPv4. | |
| Buffer | Command_serialize (Command command) |
| Serialize a Command to a Buffer. | |
| Command | Command_deserialize (Buffer buf) |
| Deserialize a Command from a Buffer. | |
| Buffer | Tag_serialize (enum Tag tag) |
| Serialize a Tag to a Buffer. | |
| enum Tag | Tag_deserialize (Buffer buf) |
| Deserialize a Tag from a Buffer. | |
| typedef int FD |
File descriptor.
| typedef uint16_t Port |
El puerto de la conexion.
Bloquea el thread hasta que un cliente se conecte.
Devuelve el enchufe del cliente para poder comunicarse con el cliente. Tienes que desenchufarlo cuando termines la direccion.
| enchufe | el Enchufe que quieres que acepte la conexion |
| void amarra | ( | Enchufe | enchufe | ) |
Amarra la direccion de IP que se le dio al enchufe, al file descriptor.
Hay casos donde no vas a querer que esten amarrados, como cuando no te importa la direccion que tendra un cliente conectandose a un servidor, por eso el default es que la funcion enchufa(ip, port) no amarre el file descriptor al puerto.
| enchufe | el Enchufe que deseas amarrar |
|
inline |
Coge un file descriptor y un receptaculo y los junta.
En otras palabras, los aplasta. Un enchufe es basicamente, un file descriptor con un IP.
| fd | el File Descriptor de la conexion |
| rec | el receptaculo de la conexion |
| void conecta | ( | Enchufe | enchufe | ) |
Crea la conexion desde tu computadora hasta donde sea que este el enchufe.
| enchufe | el Enchufe que deseas abrir |
| void desenchufa | ( | Enchufe | enchufe | ) |
Esta funcion se encarga de liberar los recursos que ocupan los echufes.
| enchufe | el Enchufe que deseas desenchufa'r |
Crea un enchufe sin abrir la conexion.
| ip | el ip de la conexion |
| port | el puerto de la conexion |
| void escucha | ( | Enchufe | enchufe, |
| size_t | len ) |
Le deja saber al enchufe cuantas conexiones se pueden hacer.
El default es que no se puedan hacer conexiones. Asi que si estas codificando un servidor, tienes que llamar esta funcion.
| enchufe | el Enchufe que deseas que escuche |
| len | la cantidad de conexiones que quieres que escuche |
| FD nuevo | ( | void | ) |
Crea un file descriptor nuevo para un enchufe.
| Receptaculo receptaculo | ( | IPv4 | ip, |
| Port | port ) |
Crea un receptaculo.
| ip | el IPv4 de la conexion |
| port | el puerto en el IP donde se conectara |
Recibe un buffer de bytes de un cliente.
Devuelve la cantidad de bytes que se leyeron. Si devuelve 0, entonces el cliente cerro la conexion. El usuario deberá hacerle free a la memoria.
| enchufe | el Enchufe que estará recibiendo data |
| out_buf | el Buffer que se estara llenando con data |
| enum Tag Tag_deserialize | ( | Buffer | buf | ) |
| Buffer Tag_serialize | ( | enum Tag | tag | ) |