Bonjour/Bonsoir
J'ai un petit problème avec mon script C++ qui possède un thread qui écoute l'ip du serveur de connexion D2 (213.248.126.39, sur le port 5555) sauf que je ne reçois que très rarement le packet d'ID 3...
J'ai l'impression que ca deconne.
Mon code:
PS: J'ai une autre classe qui deserialize les packets se qui me permet de me rendre compte que je ne reçois que le 1
J'ai un petit problème avec mon script C++ qui possède un thread qui écoute l'ip du serveur de connexion D2 (213.248.126.39, sur le port 5555) sauf que je ne reçois que très rarement le packet d'ID 3...
J'ai l'impression que ca deconne.
Mon code:
Code:
#include "SocketIO.h"
SocketIO::SocketIO(const QString &serverIp, const quint16 &port) :
m_serverIp(serverIp),
m_port(port),
m_socket(NULL)
{
tryConnect();
}
SocketIO::~SocketIO()
{
m_socket->disconnectFromHost();
delete m_socket;
}
bool SocketIO::tryConnect(bool tryUntilConnection)
{
delete m_socket;
m_socket = new QTcpSocket(this);
m_socket->connectToHost(QHostAddress(m_serverIp),m_port);
if (!m_socket->waitForConnected(WAIT_TIME_CONNECTION))
{
m_isActive = false;
qDebug()<<"SOCKET - CONNECTION SERVEUR : " +m_serverIp+ " PORT : " + QString::number(m_port)+ " A ECHOUEE";
if (tryUntilConnection)
QTimer::singleShot(WAIT_TIME_CONNECTION, this, SLOT(reconnect()));
}
else
{
m_isActive = true;
qDebug()<<"SOCKET - CONNECTION SERVEUR : " +m_serverIp+ " PORT : " + QString::number(m_port)+ " REUSSITE";
connect(m_socket, SIGNAL(readyRead()), this, SLOT(dataReceived()));
connect(m_socket,SIGNAL(disconnected()), this, SLOT(socketDisconnection()));
}
return m_isActive;
}
void SocketIO::disconnectFromHost()
{
m_isActive = false;
m_socket->disconnectFromHost();
}
bool SocketIO::isActive() const
{
return m_isActive;
}
void SocketIO::dataReceived()
{
if (m_socket->isValid())
emit dataReceived(m_socket->read(m_socket->size()));
else
qDebug()<< "SOCKET - SOCKET INVALIDE";
}
void SocketIO::socketDisconnection()
{
m_isActive = false;
qDebug()<< "SOCKET - CONNECTION TERMINEE - IP: "+m_serverIp+" PORT: " <<QString::number(m_port);
}
PS: J'ai une autre classe qui deserialize les packets se qui me permet de me rendre compte que je ne reçois que le 1