Exemplo n.º 1
0
FenPrincipale::FenPrincipale(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::FenPrincipale)
{
    ui->setupUi(this);

    connect(ui->actionA_Propos,SIGNAL(triggered()),this,SLOT(showAPropos()));
    connect(ui->actionQuitter,SIGNAL(triggered()),this,SLOT(close()));
    connect(ui->actionD_connexion,SIGNAL(triggered()),this, SLOT(deconnexion()));
    connect(ui->actionConnexion,SIGNAL(triggered()),this, SLOT(connexion()));
    connect(ui->actionNouvel_utilisateur,SIGNAL(triggered()),this,SLOT(nouvelUtilisateur()));


    connect(ui->leRecherche,SIGNAL(textChanged(QString)),this,SLOT(recherche(QString)));

    db = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL"));

    db->setHostName("localhost");
    db->setPort(3306);
    db->setDatabaseName("test");
    db->setUserName("root");
    db->setPassword("root");

    if (!db->open())
    {
	QMessageBox::critical(0, QObject::tr("Database Error"), db->lastError().text());
    }

}
Exemplo n.º 2
0
MyClient::MyClient(QTcpSocket * socket, QObject * parent, qint16 id)
{
    this->socket        = socket;
    this->messageSize   = 0;
    this->parent        = parent;
    this->id            = id;

    connect(socket, SIGNAL(readyRead()),    this, SLOT(read()));
    connect(socket, SIGNAL(disconnected()),  this, SLOT(deconnexion()));
}
Exemplo n.º 3
0
SocketClient::SocketClient(const QUrl &url, bool debug, QObject *parent) :
    QObject(parent),
    m_url(url),
    m_debug(debug)
{
    if (m_debug)
        qDebug() << "WebSocket server:" << url;
    connect(&m_webSocket,SIGNAL(connected()),this,SLOT(connexion()));
    connect(&m_webSocket,SIGNAL(disconnected()),this,SLOT(deconnexion()));
    m_webSocket.open(QUrl(url));
}
Exemplo n.º 4
0
Client::Client(QTcpSocket *socket, FenPrincipale *parent) : m_parent(parent), m_socket(socket), m_taillePaquet(0), m_pseudo(""), m_account(""), m_loginLevel(0),
m_idCompte(0), m_logoutMessage(""), m_sessionState(NOT_CHECKED), m_channel(0), m_pingsPending(0), m_ping(0)

{
    connect(m_socket, SIGNAL(readyRead()), this, SLOT(donneesRecues()));
    connect(m_socket, SIGNAL(disconnected()), this, SLOT(deconnexion()));

    //Création du timer pour le lancement des pings.
    m_pingTimer = new QTimer(this);
    connect(m_pingTimer, SIGNAL(timeout()), this, SLOT(sendPing()));
    m_pingTimer->start(m_parent->getPingInterval());
    sendPing(); //On lance un ping

    //Génération du hash de l'IP.
    //4 caractères hexa.
    m_hashIP = QCryptographicHash::hash(m_socket->peerAddress().toString().toUtf8(),
                                        QCryptographicHash::Md5).toHex().left(4);
}
Exemplo n.º 5
0
int main(int argc, char* argv[]) {

  if(argc != 3)
    {
      printf("Utilisation : hote port1 [port2] ... [portn]\n");
      return 0;
    }

  is_tcp = 1;
  is_udp = 0;

    // On définit les variables utilisées dans le programme client.
    int sock;
    char env[BUFSIZ], rec[BUFSIZ], NomDistant[BUFSIZ];

    // On crée une variable de type sokaddr_in qui sera utilisée pour la création de la socket cliente.
    struct sockaddr_in adresse;

    // Ce pointeur sur la structure hostent sera utilisé pour la recherche d'une adresse IP connaissant le nom du serveur (résolution de noms)
    struct hostent *recup;
    
    // On crée la socket cliente, de type AF_INET, qui utilisera TCP comme protocole de transport.
    sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock < 0) {
        perror("Erreur ouverture");
        return(-1);
    }
    
    // On demande a l'utilisateur de rentrer le nom de la machine serveur a laquelle le programme va se connecter.
    sprintf(NomDistant, "%s", argv[1]);
    printf("NomDistant: %s\n", NomDistant);
    
    // On tente de résoudre le nom donné par l'utilisateur, afin de récupérer l'adresse qui lui correspond
// et remplir ainsi la structure sockaddr_in
    recup = gethostbyname(NomDistant);
    if (recup == NULL) {
        perror("Erreur obtention adresse");
        return(-1);
    }

    /*
    On copie la zone mémoire qui contient la valeur de reecup (l'adresse IP du serveur) directement dans la zone mémoire 
    qui doit contenir cette valeur dans la structure sockaddr_in. 
    En paramètres :  la zone mémoire destination, la zone mémoire source,
    la longueur des données a copier.
    */
    memcpy((char *)&adresse.sin_addr, (char *)recup->h_addr, recup->h_length);
    
    // On utilise toujours une socket de type AF_INET
    adresse.sin_family = AF_INET;

    // On place le numéro de port
    // adresse.sin_port = htons((u_short) P);
    adresse.sin_port = htons((u_short) atoi(argv[2]));

    // On tente de se connecter au serveur : cette opération prend la place du accept que l'on a effectué dans le programme serveur.
    if (connect(sock, (struct sockaddr *)&adresse, sizeof(adresse)) == -1) {
        perror("Erreur connexion");
        return -1;
    }

    addr_err = adresse;
    sock_err = sock;
    // Gestion d'une deconnexion
    signal(SIGINT, deconnexion);

    printf("En attente...\n");
    if(read(sock, rec, 1024) < 0)
      {
	perror("Erreur read ");
	return -1;
      }
    if(!strcmp(rec, "?"))
      {
	printf("Que voulez-vous écrire ? (--quit pour se deconnecter)\n");
	scanf(" %[^\n]",env);
	if(!strcmp(env, "--quit"))
	  deconnexion();
	else
	  {
	    if(write(sock, env, strlen(env)) < 0)
	      {
		perror("Erreur ecriture");
		return(-1);
	      }
	  }
      }
    else if(!strcmp(rec,""))
      {
	printf("Deconnecté par le serveur\n");
	exit(EXIT_FAILURE);
      }
    printf("Message envoyé\nEn attente...\n");

    while(1)
      {
	memset(env, 0, sizeof(env));
	memset(rec, 0, sizeof(rec));
	if(read(sock, rec, 1024) < 0)
	  {
	    perror("Erreur lecture");
	    return(-1);
	  }
	if(!strcmp(rec,"?"))
	  {
	    printf("Ecriture réussie\n");
	    printf("Que voulez-vous écrire ? (--quit pour se deconnecter)\n");
	    scanf(" %[^\n]",env);
	    if (write(sock, env, strlen(env)) == -1)
	      {
		perror("Erreur ecriture");
		return(-1);
	      }
	  }
	else if(!strcmp(rec,""))
	  {
	    printf("Deconnecté par le serveur : écriture échouée\n");
	    exit(EXIT_FAILURE);
	  }
	if(!strcmp(env, "--quit"))
	  break;
	printf("En attente...\n");
      }
    printf("Deconnecté\n");
    // On referme la socket cliente. Cette opération ferme la socket cliente pour le programme client, le serveur fait de même de son coté,
    // en plus de refermer sa propre socket.
    close(sock);
    
    return 0;
}
Exemplo n.º 6
0
void VuePrincipale::closeEvent (QCloseEvent* event)
{
    event->ignore();
    emit deconnexion();
}