void monitor(TSocket *s) { TMonitor *m = new TMonitor(); if (m) { // Add this socket m->Add(s,TMonitor::kRead); // Activate it m->Activate(s); // Wait 100 millisec TSocket *ss = m->Select(100); // Check what we got if (ss == (TSocket *)(-1)) { // Timeout Printf("Got a timeout"); } else if (ss == 0) { // Error Printf("Some error occured"); } else if (ss != s) { // Not our socket Printf("Another socket is ready ... ignore"); } else { // Ok: read what we got char str[32]; Int_t nr = s->Recv(str, 32); if (nr > 0) { // Ok Printf("got: %s",str); } else if (nr == -5) { // Connection reset by peer Printf("connection reset"); } } // Deactivate socket m->DeActivate(s); // Cleanup delete m; } }