コード例 #1
0
ファイル: Serveur.cpp プロジェクト: CQuentin/QBomberMan
/**
 * Slot
 * @brief Serveur::pretALire
 */
void Serveur::readyRead()
{
    QTcpSocket *client = (QTcpSocket*)sender();
    while(client->canReadLine())
    {
        QString ligne = QString::fromUtf8(client->readLine()).trimmed();
        qDebug() << "Read line:" << ligne;

        QRegExp meRegex("^/me:(.*)$");

        if(meRegex.indexIn(ligne) != -1)
        {
            QString utilisateur = meRegex.cap(1);
            m_utilisateurs[client] = utilisateur;
            foreach(QTcpSocket *client, m_clients)
                client->write(QString("Serveur:" + utilisateur + " a rejoint le serveur.\n").toUtf8());
            envoyerListeUtilisateur();
        }
        else if(m_utilisateurs.contains(client))
        {
            QString message = ligne;
            QString utilisateur = m_utilisateurs[client];
            qDebug() << "Utilisateur:" << utilisateur;
            qDebug() << "Message:" << message;

            foreach(QTcpSocket *otherClient, m_clients)
                otherClient->write(QString(utilisateur + ":" + message + "\n").toUtf8());
        }
        else
        {
            qWarning() << "Erreur du client:" << client->peerAddress().toString() << ligne;
        }
    }
}
コード例 #2
0
ファイル: ChatBoxServer.cpp プロジェクト: nitul1991/ChatBox
void ChatBoxServer::readyRead()
{
    // Used to retrieve a pointer to the client
    QTcpSocket *client = (QTcpSocket*)sender();
    
    while(client->canReadLine())
    {
        QString line = QString::fromUtf8(client->readLine()).trimmed();
        qDebug() << "Read line:" << line;

        QRegExp meRegex("^/me:(.*)$");

        if(meRegex.indexIn(line) != -1)
        {
            QString user = meRegex.cap(1);
            // Insert username into QMap
            users[client] = user;
            
            foreach(QTcpSocket *client, clients)
                client->write(QString("Server:" + user + " has joined.\n").toUtf8());
            sendUserList();
        }
        else if(users.contains(client))
        {
            QString message = line;
            QString user = users[client];
            qDebug() << "User:"******"Message:" << message;

            foreach(QTcpSocket *otherClient, clients)
                otherClient->write(QString(user + ":" + message + "\n").toUtf8());
        }
        else
        {
            qWarning() << "Got bad message from client:" << client->peerAddress().toString() << line;
        }
    }
}
コード例 #3
0
ファイル: servernet.cpp プロジェクト: klimoqu/Arawn
void Servernet::readyRead()
{
	QTcpSocket *client =(QTcpSocket*)sender();
	while(client->canReadLine())
	{
		QString line = QString::fromUtf8(client->readLine()).trimmed();
		QRegExp meRegex("^/me:(.*)$");
		QRegExp commandRegex("^/command:(.*)$");
		if(meRegex.indexIn(line) != -1 && players.size()<=this->playernumber)		///az auth rész
		{
			QString user = meRegex.cap(1);
			players.insert(client,user);
			Command c((uchar)clients.size(),(uchar)255,(int)survive?0:1);
			client->write(c.ToString().toUtf8());
			client->flush();
			emit NewPlayerConnected();
			sendusernames();
			if(players.size()==this->playernumber)emit AllPlayersConnected();
		}
		else if(commandRegex.indexIn(line) != -1)									///command jön a klienstől
		{
			uchar id,type;
			int msg;
			QStringList command = commandRegex.cap(1).split(' ');
			id=(uchar)command.at(0).toInt();
			type=(uchar)command.at(1).toInt();
			msg=command.at(2).toInt();
			emit CommandReceivedFromClients(Command(id,type,msg));
		}
		else																		///egyéb hülyeség jön a klienstől
		{
			qDebug() << "hülyeség jött";
		}
	}

}