Socket
Librería para comunicar via TCP/IP
 Todo Clases Archivos Funciones Variables 'defines' Páginas
Métodos públicos | Métodos privados | Atributos privados | Lista de todos los miembros
Referencia de la Clase Socket

Clase del socket. Más...

#include <Socket.h>

Métodos públicos

 Socket ()
 Constructor de la clase Socket. Más...
 
void Create ()
 Método para crear sockets. Más...
 
void Bind (string address, int port)
 Método para hacer bind a una dirección y puerto. Más...
 
void Listen (int backlog)
 Método para escuchar conexiones. Más...
 
void Accept (Socket &clientSock)
 Método para aceptar conexiones. Más...
 
void Connect (string hostname, int port)
 Método para efectuar conexiones. Más...
 
void Close ()
 Método para cerrar sockets. Más...
 
int getSock ()
 Getter para el file descriptor del socket. Más...
 
const Socketoperator<< (const string &)
 Método para enviar mensajes. Más...
 
const Socketoperator>> (string &)
 Método para recibir mensajes. Más...
 

Métodos privados

int Receive (char *buff, int length)
 Método para recibir un mensaje de longitud conocida. Más...
 
int Send (const char *buff, int length)
 Método para enviar un mensaje de longitud conocida. Más...
 

Atributos privados

int sock
 Descriptor del fichero del socket. Más...
 
struct sockaddr_in sockAddr
 Estructura de dirección de socket. Más...
 

Descripción detallada

Clase del socket.

Esta clase define un objeto con los métodos y atributos necesarios para realizar comunicación encriptada o en texto llano a través de un socket TCP/IP en un entorno UNIX abstrayendo la implementación de sockets y de encriptación al programador.

Documentación del constructor y destructor

Socket::Socket ( )

Constructor de la clase Socket.

Inicializa el file descriptor del socket y prepara la memoria donde se almacenarán las llaves públicas.

Documentación de las funciones miembro

void Socket::Accept ( Socket clientSock)

Método para aceptar conexiones.

Este método bloquea el thread que lo ejecuta hasta que recibe una conexión entrante, que almacena como instancia de la clase

Socket en la referencia proporcionada por argumento.

Parámetros
clientSockInstáncia de Socket que comunica con el cliente entrante
void Socket::Bind ( string  address,
int  port 
)

Método para hacer bind a una dirección y puerto.

Este método asigna el socket a una dirección IP (y por tanto, a una interfaz de red en concreto) y un puerto, para que 

posteriormente actúe de servidor escuchando conexiones.

Parámetros
addressDirección IP asignada
portPuerto asignado
void Socket::Close ( )

Método para cerrar sockets.

Este método cierra el socket para que no se pueda escribir ni leer más en él, para liberarlo del kernel y terminar la conexión TCP.

void Socket::Connect ( string  hostname,
int  port 
)

Método para efectuar conexiones.

Este método sirve a los sockets que actúan como cliente para poder efectuar conexiones a otro socket que esté escuchando en la 

dirección y puerto especificados y atienda conexiones.

Parámetros
hostnameHostname al que conectarse
portPuerto al que conectarse
void Socket::Create ( )

Método para crear sockets.

Crea un file descriptor para un socket que por defecto no está conectado ni asignado a ninguna dirección.

int Socket::getSock ( )

Getter para el file descriptor del socket.

Este método devuelve el file descriptor del socket.

void Socket::Listen ( int  backlog)

Método para escuchar conexiones.

Este método configura el socket para que se ponga en modo escucha y así pueda atender conexiones entrantes.

Parámetros
backlogNúmero máximo de conexiones en espera
const Socket & Socket::operator<< ( const string &  text)

Método para enviar mensajes.

Este método envía el mensaje que se le proporciona a través del Socket con o sin encriptación según 

las opciones de compilación usando el protocolo implementado.

Parámetros
textMensaje a enviar
const Socket & Socket::operator>> ( std::string &  text)

Método para recibir mensajes.

Este método recibe un mensaje de longitud arbitrária con o sin encriptación según las \ref defines "opciones de compilación" usando

el protocolo implementado.

Parámetros
textMensaje a recibir
int Socket::Receive ( char *  buff,
int  length 
)
private

Método para recibir un mensaje de longitud conocida.

Este método se usa para recibir un mensaje de la longitud que se especifica por argumento y almacenarlo en el buffer proporcionado.

Este método garantiza que todo el mensaje se recibirá entero aunque la red no admita una longitud de paquete tan grande.

Parámetros
buffBuffer donde se almacena el mensaje recibido
lengthLongitud del mensaje a recibir
int Socket::Send ( const char *  buff,
int  length 
)
private

Método para enviar un mensaje de longitud conocida.

Este método se usa para enviar un mensaje de la longitud especifidada en el argumento y devuelve el número de bytes enviados.

Este método garantiza que todo el mensaje se enviará entero aunque la red no admita una longitud de paquete tan grande.

Parámetros
buffBuffer con el mensaje a enviar
lengthLongitud del mensaje

Documentación de los datos miembro

int Socket::sock
private

Descriptor del fichero del socket.

Esta variable contiene el file descriptor del socket abierto por el SO.

struct sockaddr_in Socket::sockAddr
private

Estructura de dirección de socket.

Este struct es usado por el SO para gestionar la dirección del socket abierto.


La documentación para esta clase fue generada a partir de los siguientes ficheros: