Unsolved can not call function of different class
-
@JonB yeah u r right. Here is problem in m_pClientsocket. Thank you for direct me. now, I am trying to solve socket problem
-
I have define m_pClientsocket in constructor of class
but it failed to access in send_MsgToServer().
because ,If I define in constuctor then when formclient class define the object on connection classFormClient::FormClient(QString name, QWidget *parent) : QWidget(parent), ui(new Ui::FormClient) { ui->setupUi(this); delegate=new mydelegate(this); mw=new connection(this); }
At that time value of socket is getting changed.
So the changes it bu moving them_pclientsocket= new QTcpSocket(this);
in to another main function.
void connection::on_pushButton_connect_clicked() { m_pclientsocket= new QTcpSocket(this); ui->textEdit_Sendname->clear(); m_pclientsocket->connectToHost(ui->textEdit_IP->toPlainText(),quint16(ui->textEdit_Port->toPlainText().toInt())); if(m_pclientsocket->waitForConnected(1000)){ qDebug()<<"connected"<<m_pclientsocket; ui->label_connection->setText("Connected to Server"); } }
send_MsgToServer() can not access it . where i am wrong.? what could be solution?
-
In send_MsgToServer(). the ans of
void connection::send_MsgToServer(QString msg) { qDebug()<<"in sendmsgserver"<<m_pclientsocket; m_pclientsocket->write(msg.toStdString().c_str()); qDebug()<<"message sended "<<msg; }
in sendmsgserver QApplication(0x22fe28) QIODevice::write (QApplication): device not open
what it is indicating? How can be value of socket be like QApplication.
-
Hi,
Why are you creating a new
QTcpSocket
each time you callon_pushButton_connect_clicked
? -
And why are you using
waitForConnected
?this cannot work. use signals&slots!
regards
-
@SGaist because the Problem i am facing :
if I called new QTcpSocket from constructor,thenFormClient::FormClient(QString name, QWidget *parent) : QWidget(parent), ui(new Ui::FormClient) { ui->setupUi(this); delegate=new mydelegate(this); mw=new connection(this); }
this class create QTcpSocket evety time when mw=new connection(this); called.
because of that the void connection::send_MsgToServer(QString msg)
get different value of QTcpsocket. -
@aha_1980 yeah i will correct it.but my problem is still there.
-
Currently, with the code you provided, it seems you already have an architectural problem.
Can you describe what you are exactly trying to build ?
-
@SGaist I am creating one QTableview on clientside.when ever client connected,one editor for chatting will create in that tableview.
If want to send message to John from this editor.but when i send message from particular editor the value of QtcpSocket i am getting is somthing like this "
in sendmsgserver QApplication(0x22fe28) QIODevice::write (QApplication): device not open
connection.cpp is class where socket is created.
formclient.cpp is class of widgets of chatting. -
Can anyone suggest me , have I worked in a proper way or not?