Qt在实际的使用Tcp通信中发现,发送端与接收端并不是一一对应的,会出现发送多次只相应一次的情况,且发送端速度远超接收端时会引起程序崩溃,小文件不存在这样的问题,可忽略,大文件发送之所以出现,其问题的根本点在于Tcp发送与接收端不一致引起的粘包。 因此可根据实际情况制定协议,使用一问一答的方式进行数据传输,牺牲效率以满足稳定性和安全可靠性。 客户端代码如下 TcpClientPro::TcpClientPro(QWidget *parent) : QWidget(parent) { ui.setupUi(this); initClient(); } TcpClientPro::~TcpClientPro() { qDebug() << "~ClientPro()----------------------------"; if (m_client->state() == QAbstractSocket::ConnectedState) { //如果使用disconnectFromHost()不会重置套接字,isValid还是会为true m_client->abort(); }...