Qt编写的界面程序中在没有点击连接服务的的按钮时,直接点击 发送 按钮,程序就会闪退,并且出现Segmentation Fault的提示,
经过排查,发现是因为QTcpSocket建立的对象放在了 连接服务端 按钮的槽函数里边,只有点了连接服务端 的按钮,对象才会建立,而直接点 发送 按钮时候,对象并没有建立,所以会出现错误(就是还没建立对象,你就调用了,所以不知道用的哪里的对象)。
void SocketTCPClient::on_m_connectServerBtn_clicked()
{
// mp_clientSocket = new QTcpSocket();这样做不正确!
QString ip = ui->m_serverIPLineEdit->text();\
int port = ui->m_serverPortLineEdit_2->text().toInt();
mp_clientSocket->connectToHost(ip, port);
if(!mp_clientSocket->waitForConnected(30000))
{
QMessageBox::information(this, "QT网络通信", "连接服务端失败!");
return;