infatti penso che il problema sia nella funzione initConnection.
quel prontf nn viene stampato.
ho trovato però il punto:
codice:
void Server::initConnection() {
    cout << "SERVER STARTED. PRESS ENTER TO EXIT" << endl;
    socklen_t clilen;
    char buffer[256];
    struct sockaddr_in local;
    struct sockaddr_in from;
    int port = 20248;
    bzero((char *) &local, sizeof (local));
    local.sin_family = AF_INET;
    local.sin_addr.s_addr = INADDR_ANY;
    local.sin_port = htons(port);
    socketServer = socket(AF_INET, SOCK_STREAM, 0);
    listen(socketServer, 5);
    clilen = sizeof (from);

    char c = getchar();
    if (c == 10) { // FUNZIONA
        exit(0);
    }

    socketInAscolto = accept(socketServer, (struct sockaddr *) &from, &clilen);

    cout << "NON VIENE STAMPATO" << endl;

    sprintf(buffer, "YOUR IP IS:  %s", inet_ntoa(from.sin_addr));
    send(socketInAscolto, buffer, strlen(buffer), 0);
    cout << "CONNECTION FROM " << inet_ntoa(from.sin_addr) << endl;
}
l'ho messo nei commenti.
penso dipenda dal fatto che nn ci siano connessioni.
però in teoria uno dovrebbe poter terminare il programma lo stesso a prescindere.
qualche suggerimento?