fixed socket bug and simplified readClient()
This commit is contained in:
parent
b4fd5797f5
commit
03847a9b36
3 changed files with 7 additions and 19 deletions
|
@ -2,13 +2,12 @@
|
|||
#include "client.h"
|
||||
|
||||
Client::Client(QObject *parent)
|
||||
: QObject(parent)
|
||||
: QObject(parent), MsgId(0)
|
||||
{
|
||||
timer = new QTimer(this);
|
||||
timer->setInterval(1000);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(checkTimeout()));
|
||||
|
||||
MsgId = 0;
|
||||
status = StatusDisconnected;
|
||||
socket = new QTcpSocket(this);
|
||||
socket->setTextModeEnabled(true);
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QTextCodec>
|
||||
#include "server.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
@ -27,6 +28,8 @@ int main(int argc, char *argv[])
|
|||
QCoreApplication app(argc, argv);
|
||||
app.setOrganizationName("Cockatrice");
|
||||
app.setApplicationName("Servatrice");
|
||||
|
||||
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
|
||||
|
||||
Server server;
|
||||
if (!server.openDatabase()) {
|
||||
|
|
|
@ -142,25 +142,11 @@ void ServerSocket::leaveGame()
|
|||
|
||||
void ServerSocket::readClient()
|
||||
{
|
||||
QTextStream *stream = new QTextStream(this);
|
||||
stream->setCodec("UTF-8");
|
||||
QStringList lines;
|
||||
|
||||
// Before parsing, everything has to be buffered so that the stream
|
||||
// can be deleted in order to avoid problems when moving the object
|
||||
// to another thread while this function is still running.
|
||||
for (;;) {
|
||||
QString line = stream->readLine();
|
||||
while (canReadLine()) {
|
||||
QString line = QString(readLine()).trimmed();
|
||||
if (line.isNull())
|
||||
break;
|
||||
lines << line;
|
||||
}
|
||||
delete stream;
|
||||
|
||||
QStringListIterator i(lines);
|
||||
while (i.hasNext()) {
|
||||
QString line = i.next();
|
||||
|
||||
|
||||
qDebug(QString("<<< %1").arg(line).toLatin1());
|
||||
switch (PlayerStatus) {
|
||||
case StatusNormal:
|
||||
|
|
Loading…
Reference in a new issue