Servidor de chat++

De SolarSockets C++ Sockets C++

Es un servidor de chat muy simple, pero que permite recibir múltiples conexiones, hacerlo a mano implica aun mas tiempo que el cliente, con SolarSockets++ y muy poco código obtendrás los mismos resultados. Ademas ya no tendrás que preocuparte por la capa de comunicaciones, nosotros lo hacemos por ti, en cambio puedes dedicar mas tiempo a la lógica de tu proyecto.

Nota: Para probar el servidor también se puede utilizar como cliente un cliente Telnet. Usado de la siguiente forma:

telnet localhost 9999

Descarga

serverChat++.cpp

Copia y Pega

// Solar-OpenSource.Org (c)

#include <SolarSockets/SolarSockets++.h>

class cMiServerCliente : public ssPPServerClient
{
public:
  //cMiServerCliente(ssPPServer *father, int ID): ssPPServerClient(father, ID){}; // Obligatorio|Mandatory.
  
public:
  string MiNick;
  void onConnect ()
  {
    setTokenizer("\r\n");
    cout << "Nueva conexion ID[" <<getID() << "]" << " mi IP es :" << getIP() << endl;
    // Se acepto la coneccion y se envia saludo :) 
    Send("Bienvenido.\r\n");
  }

  void onLineArrival(string Data)
  {
    cout << "[" << getID() << "]: " << Data << endl;
    SendMulticast(Data + "\r\n", getID()); 
  }
};

class cMiServer : public ssPPServer 
{
  void onConnect ()
  {
    static int Tipo = 0;
    Tipo ++;

    ssPPServerClient *ServerClient;

    // En el Accept substituimos el cliente y ponemos el nuestro.
    ServerClient = new cMiServerCliente(); 
    Accept(ServerClient);
 
    cout << "Cliente " << ServerClient->getID();
    cout << " intenta coneccion, su ip es: " << ServerClient->getIP() << endl;
    cout << "Se conecta desde desde la red: " << ServerClient->getIPNet() << endl;

  }
};


int main (int argc, char* argv[])
{
  cMiServer ZeruServer;

  ZeruServer.Listen(9999);

  cout << "Escuchando" << endl;

  int x;
  cin >> x;

}



Español (es) English (en) +/-

Estadisticas
  • Modif 3 ago 2011.
  • Vista 826 veces.