Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

netsoullistusers.cpp 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "netsoullistusers.h"
  2. NetSoulListUsers::NetSoulListUsers(QObject* parent) : QObject(parent)
  3. {
  4. socket = new QTcpSocket(this);
  5. connect(socket, SIGNAL(connected()), this, SLOT(connectedToNS()));
  6. connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(sockError(QAbstractSocket::SocketError)));
  7. connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
  8. }
  9. void NetSoulListUsers::list()
  10. {
  11. socket->connectToHost("ns-server.epita.fr", 4242);
  12. }
  13. void NetSoulListUsers::connectedToNS()
  14. {
  15. socket->write("list_users\n");
  16. }
  17. void NetSoulListUsers::sockError(QAbstractSocket::SocketError)
  18. {
  19. emit NSError();
  20. }
  21. void NetSoulListUsers::readyRead()
  22. {
  23. buf += QString(socket->readAll());
  24. if(buf.endsWith("cmd end\n"))
  25. {
  26. QList<QList<QString> > users;
  27. QStringList usrs = buf.split("\n", QString::SkipEmptyParts);
  28. for(int i = 1; i < usrs.size() - 1; ++i)
  29. users.append(usrs.at(i).split(" "));
  30. socket->disconnectFromHost();
  31. emit listed(users);
  32. }
  33. }