#include <Servidor.hpp>
Métodos públicos | |
| Servidor () | |
| Constructor. | |
| ~Servidor () | |
| Destructor. | |
| void | CierraConexion (const int descriptor) |
| Cierra la conexión de descriptor dado. | |
| void | Escribe (const int descriptor, const QString &texto) |
| Envía un mensaje de texto a la conexión de descriptor dado. | |
| void | incomingConnection (int descriptor) |
| Crea una nueva Conexion a la llegada de una nueva conexión. | |
Slots privados | |
| void | EliminarConexion (Conexion *con) |
| Elimina la conexión que se pasa como parámetro. | |
Atributos privados | |
| QHash< int, Conexion * > | conexiones |
| Contenedor de conexiones entrantes. | |
Definición en la línea 64 del archivo Servidor.hpp.
|
|
Constructor.
Definición en la línea 92 del archivo Servidor.cpp. Hace referencia a Log(), NUM_MAX_CONXS_PENDS, y NUM_PUERTO. 00093 { 00094 setMaxPendingConnections (NUM_MAX_CONXS_PENDS); 00095 00096 if (!listen (QHostAddress::Any, NUM_PUERTO)) 00097 qFatal ("El servidor no se ha podido asociar al puerto %d.", NUM_PUERTO); 00098 00099 QString puerto; 00100 puerto.setNum (NUM_PUERTO); 00101 Log (8, "Servidor a la espera de nuevas conexiones en el puerto " + puerto + 00102 ".\n"); 00103 }
|
|
|
Destructor.
Definición en la línea 106 del archivo Servidor.cpp. Hace referencia a conexiones. 00107 { 00108 qDebug ("Destructor de Servidor"); 00109 00110 // Eliminamos todas las conexiones 00111 foreach (Conexion *con, conexiones) 00112 delete (con); 00113 }
|
|
|
Cierra la conexión de descriptor dado.
Definición en la línea 116 del archivo Servidor.cpp. Hace referencia a conexiones, y EliminarConexion(). Referenciado por Mensajero::NuevaLinea(). 00117 { 00118 if (!conexiones.contains (descriptor)) 00119 qFatal ("Intento de cerrar la conexión de un descriptor no presente."); 00120 00121 Conexion *con = conexiones.value (descriptor); 00122 00123 EliminarConexion (con); 00124 }
|
|
|
Elimina la conexión que se pasa como parámetro.
Definición en la línea 127 del archivo Servidor.cpp. Hace referencia a conexiones, Conexion::descriptor, Conexion::direccion, Mensajero::EliminaCanal(), y Log(). Referenciado por CierraConexion(), y incomingConnection(). 00128 { 00129 Log (6, "Cerrando conexión"); 00130 Log (5, " procedente de la dirección IP: " + *con->direccion); 00131 Log (6, "\n"); 00132 miMensaj->EliminaCanal (con->descriptor); 00133 conexiones.remove (con->descriptor); 00134 delete con; 00135 00136 QString num_conexiones; 00137 num_conexiones.setNum (conexiones.count()); 00138 Log (4, "Ahora mismo hay " + num_conexiones + " conexiones abiertas.\n"); 00139 }
|
|
||||||||||||
|
Envía un mensaje de texto a la conexión de descriptor dado.
Definición en la línea 142 del archivo Servidor.cpp. Hace referencia a conexiones, y Conexion::Escribe(). Referenciado por Mensajero::EnviaMensaje(), Mensajero::NuevaLinea(), y Mensajero::NuevoCanal(). 00143 { 00144 if (!conexiones.contains (descriptor)) 00145 qFatal ("Intento de escritura hacia un descriptor no presente."); 00146 00147 Conexion *destino = conexiones.value (descriptor); 00148 00149 destino->Escribe (texto); 00150 }
|
|
|
Crea una nueva Conexion a la llegada de una nueva conexión.
Definición en la línea 153 del archivo Servidor.cpp. Hace referencia a conexiones, Conexion::direccion, EliminarConexion(), Log(), y Mensajero::NuevoCanal(). 00154 { 00155 Conexion *entrante = new Conexion (descriptor); 00156 00157 // Añadimos la nueva conexión a la lista de conexiones entrantes 00158 conexiones.insert (descriptor, entrante); 00159 00160 connect (entrante, SIGNAL (EliminarConexion (Conexion *)), this, 00161 SLOT (EliminarConexion (Conexion *))); 00162 00163 miMensaj->NuevoCanal (descriptor); 00164 00165 Log (6, "Nueva conexión entrante aceptada.\n"); 00166 Log (5, "La conexión proviene de la dirección IP: " + *entrante->direccion + 00167 "\n"); 00168 00169 QString num_conexiones; 00170 num_conexiones.setNum (conexiones.count()); 00171 Log (4, "Ahora mismo hay " + num_conexiones); 00172 if (conexiones.count() == 1) 00173 Log (4, " conexión abierta.\n"); 00174 else 00175 Log (4, " conexiones abiertas.\n"); 00176 }
|
|
|
Contenedor de conexiones entrantes.
Definición en la línea 78 del archivo Servidor.hpp. Referenciado por CierraConexion(), EliminarConexion(), Escribe(), incomingConnection(), y ~Servidor(). |
1.4.4