Albo pętla, albo prosisz system, aby wywoływał konkretne funkcje przy konkretnych zdażeniach. Nie wiem, jak to jest na Linux'ie, ale na Windows'ie można zrobić Hook na mysz / klawiaturę i wtedy podczas eventów system wywołuje zarejestrowaną funkcję obsługi eventu. Z siecią jeszcze się nie bawiłem, więc ci niestety nie powiem, czy istnieje coś takiego od komunikacji z siecią.
Gdybym miał napisać serwer, to zrobił bym pętlę, która wywołuje funkcję typu WaitFor, która czeka na kwerendę i po otrzymaniu zapytania stworzył nowy wątek do obsługi, a stary czekał by na kolejne zapytanie.
PS Nigdy nie programowałem pod Linux'a, więc nie wiem, czy ma on funkcje typu WaitFor, ale podejżewam, że ma.