Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
|
Clase que representa un socket de comunicación. Se usa como base para la genereación de clases de comunicación. Se compone de una variable de tipo socket_t que representa el socket y una variable de tipo int32_t que representa el último error ocurrido. More...
#include <CSocket.hpp>
Public Member Functions | |
CSocket () | |
Constructor por defecto. Inicializa el socket con el valor INVALID_SOCKET y el error a 0. | |
CSocket (socket_t handle) | |
Constructor parametrizado para un socket_t handle. | |
CSocket (const CSocket &other)=delete | |
Constructor de copia, eliminado para evitar su uso. | |
CSocket (CSocket &&other) noexcept | |
Constructor de movimiento. | |
virtual | ~CSocket () |
Destructor. Debe ser virtual para permitir la modificación en las clases derivadas. | |
CSocket & | operator= (const CSocket &other)=delete |
Operador de asignación de copia, eliminado para evitar su uso. | |
CSocket & | operator= (CSocket &&other) noexcept |
Operador de asignación de movimiento. | |
bool | operator! () const |
Operador de negación. | |
operator bool () const | |
Operador de conversión a bool. | |
virtual bool | bind (const CSocketAddress &address) |
Asigna una dirección a un socket. | |
bool | bind (const sockaddr *address, socklen_t len) const |
bool | isOpen () const |
Comprueba que el handle del socket sea válido. | |
socket_t | release () |
Pone a -1 el handle interno y devuelve el valor anterior. Al no invalidar el file descriptor del socket, se puede usar para desasociar el socket del Sistema Operativo de un objeto CSocket concreto. | |
void | reset (socket_t handle=INVALID_SOCKET) |
Asigna un nuevo handle al socket e invalida el anterior. | |
CSocket | clone () const |
Crea un nuevo objeto CSocket con el mismo handle que el actual. | |
bool | close () |
Cierra el socket. | |
virtual CSocketAddressAny | getAddress () const |
virtual CSocketAddressAny | getPeerAddress () const |
virtual sa_family_t | getFamily () const |
socket_t | getHandle () const |
void | setLastError (int32_t err=INT32_MAX) const |
std::string | getLastErrorString () const |
void | clearLastError (int32_t value=0) const |
bool | getOption (int32_t level, int32_t optName, void *optVal, socklen_t *optLength) const |
template<typename T > | |
bool | getOption (const int32_t level, const int32_t optName, T *value) const |
bool | setOption (int32_t level, int32_t optName, const void *optVal, socklen_t optLength) const |
template<typename T > | |
bool | setOption (const int32_t level, const int32_t optName, const T &value) |
bool | setNonBlocking (bool on=true) const |
Static Public Member Functions | |
static CSocket | create (int32_t domain, int32_t type, int32_t protocol=0) |
static bool | close (socket_t h) |
static std::tuple< CSocket, CSocket > | pair (int32_t domain, int32_t type, int32_t protocol=0) |
Protected Member Functions | |
template<typename T > | |
T | checkRet (T ret) const |
template<typename T > | |
bool | checkRetBool (T ret) const |
socket_t | checkSocket (socket_t ret) const |
bool | checkSocketBool (socket_t ret) const |
bool | closeOnError () |
Static Protected Member Functions | |
static int32_t | getErrno () |
Función que devuelve el valor actual de errno. | |
Protected Attributes | |
socket_t | m_handle |
Private Attributes | |
int32_t | m_lastError |
Clase que representa un socket de comunicación. Se usa como base para la genereación de clases de comunicación. Se compone de una variable de tipo socket_t que representa el socket y una variable de tipo int32_t que representa el último error ocurrido.
CSocket::CSocket | ( | ) |
Constructor por defecto. Inicializa el socket con el valor INVALID_SOCKET y el error a 0.
|
explicit |
Constructor parametrizado para un socket_t handle.
handle | Socket a asignar. |
|
delete |
Constructor de copia, eliminado para evitar su uso.
other | Socket a copiar. |
|
noexcept |
Constructor de movimiento.
other | Socket a mover. |
|
virtual |
Destructor. Debe ser virtual para permitir la modificación en las clases derivadas.
|
virtual |
Asigna una dirección a un socket.
address | Dirección a la que el socket se va a asociar. |
bool CSocket::bind | ( | const sockaddr * | address, |
socklen_t | len ) const |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
void CSocket::clearLastError | ( | int32_t | value = 0 | ) | const |
CSocket CSocket::clone | ( | ) | const |
bool CSocket::close | ( | ) |
Cierra el socket.
|
static |
|
inlineprotected |
|
static |
|
virtual |
|
staticprotected |
Función que devuelve el valor actual de errno.
|
virtual |
socket_t CSocket::getHandle | ( | ) | const |
std::string CSocket::getLastErrorString | ( | ) | const |
|
inline |
bool CSocket::getOption | ( | int32_t | level, |
int32_t | optName, | ||
void * | optVal, | ||
socklen_t * | optLength ) const |
|
virtual |
bool CSocket::isOpen | ( | ) | const |
Comprueba que el handle del socket sea válido.
|
explicit |
Operador de conversión a bool.
bool CSocket::operator! | ( | ) | const |
Operador de negación.
Operador de asignación de copia, eliminado para evitar su uso.
other | Socket a copiar. |
Operador de asignación de movimiento.
other | Socket a mover. |
|
static |
socket_t CSocket::release | ( | ) |
Pone a -1 el handle interno y devuelve el valor anterior. Al no invalidar el file descriptor del socket, se puede usar para desasociar el socket del Sistema Operativo de un objeto CSocket concreto.
void CSocket::reset | ( | socket_t | handle = INVALID_SOCKET | ) |
Asigna un nuevo handle al socket e invalida el anterior.
handle | Nuevo handle a asignar. |
void CSocket::setLastError | ( | int32_t | err = INT32_MAX | ) | const |
bool CSocket::setNonBlocking | ( | bool | on = true | ) | const |
|
inline |
bool CSocket::setOption | ( | int32_t | level, |
int32_t | optName, | ||
const void * | optVal, | ||
socklen_t | optLength ) const |
|
protected |
|
mutableprivate |