Witam, mam problem, kiedy odczytuje dane z serwera są one nie poprawne, ma ktoś pomysł co w moim kodzie jest nie tak?
cClient::cClient(QObject *parent) : QObject(parent),m_IP("127.0.0.1"),m_port(10000),m_receivedCounter(0) { m_timerId=startTimer(1000); } void cClient::check() { int N=getMessagesCount(); for(int id=m_receivedCounter+1;id<N;id++) { QString msg=getMessage(id); emit newMessageReceived(msg);//wysyła sygnał m_receivedCounter=id; } } void cClient::timerEvent(QTimerEvent *event) { if(event->timerId()==m_timerId) { check(); } } QString cClient::getMessage(int id)//zwraca wiadomosc o danym id { QString message; if(connect2Server()) { sRamka request,response; request.id=3; //wysylanie do serweru komendy o id = 3 request.rozmiar=id; m_socket.write((char*)&request,sizeof(request)); m_socket.waitForBytesWritten(); m_socket.waitForReadyRead(); m_socket.read((char*)&response,sizeof(response)); response.rozmiar=sizeof(response.tekst); message=QString::fromUtf8(response.tekst); } m_socket.disconnectFromHost(); return message; } void cClient::sendMessage(QString message) { ++al; sRamka request,response; if(connect2Server()) { request.id=1; strcpy(request.tekst,"napis do wyslania"); m_socket.write((char*)&request,sizeof(request)); m_socket.waitForBytesWritten(); m_socket.waitForReadyRead(); m_socket.read((char*)&response,sizeof(response)); qDebug()<<request.tekst; qDebug()<<response.tekst; switch(response.id) { case 0: //server sent ID 0 break; // case -1: //server sent ID -1 } } qDebug()<<request.tekst; qDebug()<<response.tekst; m_socket.disconnectFromHost(); } int cClient::getMessagesCount() //zwraca liczbe komunikatow na serwerze. Narazie zmienna globalna jak będzie działać to poprawię { return al; }