Socket* TCPSocket::accept() {
    if (endPoint != LISTENER)
        return NULL;

    SOCKET client;

    client = AcceptConnection(sock);

    if (client == -1)
        return NULL;

    TCPSocket* tcpClient = new TCPSocket(SERVER);
    if (!tcpClient->setFD(client)) {
        delete tcpClient;
        return NULL;
    }

    return tcpClient;
}