X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/bb95c06ba5fa63ab90ee148ab8a6e009226a53cf..1767eccd7e3ea6de4101d6d29c1d29ac0fba2a51:/Server/src/main.cpp diff --git a/Server/src/main.cpp b/Server/src/main.cpp index 1f505ee..08c7cd5 100644 --- a/Server/src/main.cpp +++ b/Server/src/main.cpp @@ -54,7 +54,7 @@ void on_finished(void) { int main(int argc, char* argv[]) { // Termina con mas informacion si hay una excepcion no manejada. - set_terminate (__gnu_cxx::__verbose_terminate_handler); + set_terminate(__gnu_cxx::__verbose_terminate_handler); // Bienvenida. cout << "PlaQui Server. Modo de uso: " << endl; @@ -82,6 +82,10 @@ int main(int argc, char* argv[]) { } catch (const sockerr& e) { cerr << "Socket Error: " << e.operation() << " | serrno = " << e.serrno() << " | errstr = " << e.errstr() << endl; + if (e.serrno() == 98) { + cerr << "No se puede usar el puerto " << port << " porque ya está " + "siendo utilizado por otro programa." << endl; + } if (e.io()) { cerr << "Es: non-blocking and interrupt io recoverable error." << endl; @@ -112,16 +116,23 @@ int main(int argc, char* argv[]) { // Conecto señal para atender errores. server->signal_error().connect(SigC::slot(on_error)); + // Conecto señal para atender la finalización del server. + server->signal_finished().connect(SigC::slot(on_finished)); + // Corre el server. - server->run(false); + server->run(); // Espera a que el server se muera. while (server) { - Glib::usleep(1000000); + //cerr << "-----------------\n\nAHHHHHHH\n\n----------------" << endl; + Glib::usleep(100000); // 0,1 segundos } + // Espera un segundo más por las dudas, para asegurarse de que terminó. + Glib::usleep(1000000); // 1 segundo // Como no detachee el server, lo tengo que eliminar a mano. //delete server; return 0; } +