void client::iniClient() { int times = 5; while(times){ if(!clientSocket){ clientSocket = new QTcpSocket(); connect(clientSocket, SIGNAL(readyRead()), this, SLOT(recData())); connect(clientSocket,SIGNAL(disconnected()),this,SLOT(disconnect())); } if(!isLink){ this->clientSocket->connectToHost(ip,port); if(this->clientSocket->waitForConnected(30000)){ qDebug() << "[QT网络通信]连接服务端成功!"; in.setDevice(clientSocket); isLink = true; return ; }else{ qDebug() << "[QT网络通信]连接服务端失败,重新连接中!"; } } times --; } qDebug() << "[QT网络通信]5次尝试连接服务端失败,请检查服务端是否开启"; }
时间: 2023-06-18 18:04:27 浏览: 219
ClientSocket-and-ServerSocket.rar_Delphi ServerSocket_ServerSock
这是一个 QT 网络通信的客户端初始化函数,主要功能是尝试连接服务端。首先判断是否已经存在客户端套接字 clientSocket,如果不存在则新建一个,并且连接 readyRead 信号和 disconnected 信号到相应的槽函数上。然后判断是否已经连接到服务端,如果没有连接,则尝试连接。如果连接成功,则设置 in 设备为 clientSocket,并将 isLink 标志位设置为 true,然后函数返回。如果连接失败,则输出连接失败的提示信息,并继续尝试连接,最多尝试 5 次。如果尝试 5 次后仍然连接失败,则输出连接失败的提示信息,并且函数返回。
阅读全文