Using Object in another function within the class
-
hello guys! i have a problem, i want to use the server and client object that i create in connectUDP function in my updateChat function but the compiler says that client and server are undeclared. how can i fix this (line 41, 42, 43 error)
#include "myudp.h" #include <QDebug> MyUDP::MyUDP(QObject *parent) : QObject{parent} { socket = new QUdpSocket(this); connect(socket, &QUdpSocket::readyRead, this, &MyUDP::Read); } void MyUDP::initServer() { socket->bind(QHostAddress::LocalHost, 7755); } void MyUDP::sendMessage(double value) { qDebug() << value; //ok but cant read QByteArray Data; Data.append(value); socket->writeDatagram(Data, QHostAddress::LocalHost, 7755); } void MyUDP::Read() { m_Recieved.resize(socket->pendingDatagramSize()); //damit keine infos verloren gehen, wenn daten zu lang sind socket->readDatagram(m_Recieved.data(), m_Recieved.size(), &m_sender, &m_senderPort); //readDatagramm befüllt sozusagen das recieved emit giveReadValues(m_Recieved, m_sender, m_senderPort); } void MyUDP::connectUDP() { MyUDP server; MyUDP client; server.initServer(); } void MyUDP::updateChat(double pm10, double pm25) { client->sendMessage(pm10); client->sendMessage(pm25); server->Read(); }hope someone can help me. thanks!
-
hello guys! i have a problem, i want to use the server and client object that i create in connectUDP function in my updateChat function but the compiler says that client and server are undeclared. how can i fix this (line 41, 42, 43 error)
#include "myudp.h" #include <QDebug> MyUDP::MyUDP(QObject *parent) : QObject{parent} { socket = new QUdpSocket(this); connect(socket, &QUdpSocket::readyRead, this, &MyUDP::Read); } void MyUDP::initServer() { socket->bind(QHostAddress::LocalHost, 7755); } void MyUDP::sendMessage(double value) { qDebug() << value; //ok but cant read QByteArray Data; Data.append(value); socket->writeDatagram(Data, QHostAddress::LocalHost, 7755); } void MyUDP::Read() { m_Recieved.resize(socket->pendingDatagramSize()); //damit keine infos verloren gehen, wenn daten zu lang sind socket->readDatagram(m_Recieved.data(), m_Recieved.size(), &m_sender, &m_senderPort); //readDatagramm befüllt sozusagen das recieved emit giveReadValues(m_Recieved, m_sender, m_senderPort); } void MyUDP::connectUDP() { MyUDP server; MyUDP client; server.initServer(); } void MyUDP::updateChat(double pm10, double pm25) { client->sendMessage(pm10); client->sendMessage(pm25); server->Read(); }hope someone can help me. thanks!
@Metshiix said in Using Object in another function within the class:
MyUDP server; MyUDP client; server.initServer();Basic c++ - what's the lifetime of those two variables?
client->sendMessage(pm10);
server->Read();dito - where are those pointers initialized?
-
hello guys! i have a problem, i want to use the server and client object that i create in connectUDP function in my updateChat function but the compiler says that client and server are undeclared. how can i fix this (line 41, 42, 43 error)
#include "myudp.h" #include <QDebug> MyUDP::MyUDP(QObject *parent) : QObject{parent} { socket = new QUdpSocket(this); connect(socket, &QUdpSocket::readyRead, this, &MyUDP::Read); } void MyUDP::initServer() { socket->bind(QHostAddress::LocalHost, 7755); } void MyUDP::sendMessage(double value) { qDebug() << value; //ok but cant read QByteArray Data; Data.append(value); socket->writeDatagram(Data, QHostAddress::LocalHost, 7755); } void MyUDP::Read() { m_Recieved.resize(socket->pendingDatagramSize()); //damit keine infos verloren gehen, wenn daten zu lang sind socket->readDatagram(m_Recieved.data(), m_Recieved.size(), &m_sender, &m_senderPort); //readDatagramm befüllt sozusagen das recieved emit giveReadValues(m_Recieved, m_sender, m_senderPort); } void MyUDP::connectUDP() { MyUDP server; MyUDP client; server.initServer(); } void MyUDP::updateChat(double pm10, double pm25) { client->sendMessage(pm10); client->sendMessage(pm25); server->Read(); }hope someone can help me. thanks!
-
Hi,
The question stays valid. You create client and server on the stack in a function hence what are the scope of these variables ?
-
hello guys! i have a problem, i want to use the server and client object that i create in connectUDP function in my updateChat function but the compiler says that client and server are undeclared. how can i fix this (line 41, 42, 43 error)
#include "myudp.h" #include <QDebug> MyUDP::MyUDP(QObject *parent) : QObject{parent} { socket = new QUdpSocket(this); connect(socket, &QUdpSocket::readyRead, this, &MyUDP::Read); } void MyUDP::initServer() { socket->bind(QHostAddress::LocalHost, 7755); } void MyUDP::sendMessage(double value) { qDebug() << value; //ok but cant read QByteArray Data; Data.append(value); socket->writeDatagram(Data, QHostAddress::LocalHost, 7755); } void MyUDP::Read() { m_Recieved.resize(socket->pendingDatagramSize()); //damit keine infos verloren gehen, wenn daten zu lang sind socket->readDatagram(m_Recieved.data(), m_Recieved.size(), &m_sender, &m_senderPort); //readDatagramm befüllt sozusagen das recieved emit giveReadValues(m_Recieved, m_sender, m_senderPort); } void MyUDP::connectUDP() { MyUDP server; MyUDP client; server.initServer(); } void MyUDP::updateChat(double pm10, double pm25) { client->sendMessage(pm10); client->sendMessage(pm25); server->Read(); }hope someone can help me. thanks!
@Metshiix said in Using Object in another function within the class:
how can i fix this (line 41, 42, 43 error)
Look at your variable
socketand the places where you are using it.
Then look atserverandclientagain. Able to spot any difference?!
Also, what @Christian-Ehrlicher and @SGaist have said.