#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "enchufe.h"#include "log.h"Functions | |
| FD | nuevo (void) |
| Crea un file descriptor nuevo para un enchufe. | |
| Receptaculo | receptaculo (IPv4 ip, Port port) |
| Crea un receptaculo. | |
| 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 buf) |
| Envia un buffer de bytes a un cliente. | |
| size_t | recibe (Enchufe enchufe, Buffer 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 (const char *str) |
| Esta funcion convierte un string que representa un IPv4 en un IPv4. | |
| Buffer | IPv4_serialize (IPv4 ip) |
| Convierte un IPv4 a un Buffer. | |
| IPv4 | IPv4_deserialize (Buffer buf) |
| Convierte un Buffer a un IPv4. | |
| Buffer | Tag_serialize (enum Tag tag) |
| Serialize a Tag to a Buffer. | |
| enum Tag | Tag_deserialize (Buffer buf) |
| Deserialize a Tag from a Buffer. | |
| Buffer | Command_serialize (Command command) |
| Serialize a Command to a Buffer. | |
| Command | Command_deserialize (Buffer buf) |
| Deserialize a Command from a Buffer. | |
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 |
| 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 | ) |