#include "socket/socket_server.hh" #include "utils/errno_exception.hh" #include "socket/address.hh" #include #include SocketServer::SocketServer(const Address & address) { // Crée le file descriptor du socket socket_ = socket (PF_INET, SOCK_STREAM, 0); if(socket_ < 0) throw errno_exception ("La chaussette n'a pas pu être tricoté", errno); // On bind le socket if(::bind (socket_, address.getSockaddr(), sizeof(*address.getSockaddr())) < 0) throw errno_exception("Impossible d'assigner la chausette", errno); } SocketServer::~SocketServer(void) { if(socket_ >= 0) ::close(socket_); } void SocketServer::listen(int maxQueue) { if(::listen(socket_, maxQueue) < 0 ) throw errno_exception("Impossible d'écouter la mer dans la chaussette", errno); } int SocketServer::accept(void) { int socket = ::accept(socket_, 0, 0); if (socket < 0) throw errno_exception("Chaussette bloqué à la douane", errno); return socket; }