QT中关于QTcpSocket 类的 disconnected()和 error()信号

场景:QT中关于QTcpSocket 类的 disconnected() error()信号,解决思路

QT中关于QTcpSocket 类的 disconnected()和 error()信号,急!!!
各位大侠,帮帮忙 : 

我在自定义类中定义了一个QTcpSocket成员,然后在类的构造函数中分别关联了QTcpSocket的connected()、disconnected()、error()信号到相应的槽,分别在disconnected()和error()关联的槽中执行了 connectToHost()命令,当我联上服务器断再断掉后为什么disconnected()相应槽的connectToHost()命令执行后QTcpSocket成员能得到connected()信号,而error()相应槽的connectToHost()命令执行后QTcpSocket成员却不能得到connected()信号呢?(附简易代码说明) 

class TCP_Client : public QThread 

  Q_OBJECT 
public: 
  . 
  . 
  . 
private: 
  QTcpSocket m_socket; 
public slots: 
  void ConnectSucceed(); 
  void DestroyConnection(); 
}; 

TCP_Client::TCP_Client() 

  connect(&m_socket, SIGNAL(connected()), this, SLOT(ConnectSucceed())); 
  connect(&m_socket, SIGNAL(disconnected()), this, SLOT(DestroyConnection())); 
// connect(&m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(DestroyConnection())); 
}  
  .  
  .  
  . 
void TCP_Client::ConnectSucceed() 

  emit CommunicationStateChanged(m_ObjectCar, TRUE); 
  
  return; 


void TCP_Client::DestroyConnection() 

  m_socket.abort(); 
  emit CommunicationStateChanged(m_ObjectCar, FALSE); 

  m_socket.connectToHost("192.168.1.1", 9998); //当第一次连接上服务器再断开后  
  //为什么通过disconnected()关联到该槽时,执行了这句后能进入ConnectSucceed()槽;  
  //而通过error()关联到该槽时,执行了这句后却不能进入ConnectSucceed()槽。似乎m_socket跟本就没发射connected()信号。
  return; 
}

------解决方案--------------------
任何连接或者正在进行的连接被立即关闭,并且QSocket进入HostLookup 状态。当查找成功,它发射hostFound(),开始一个TCP连接并且进入Connecting状态。最后,当连接成功时,它发射connected()并且进入Connected状态。如果在任何一个地方出现错误,它发射error()。

没道理啊,如果没有error,则一定有connected信号,换个思路,在DestroyConnection函数里connect(&m_socket, SIGNAL(connected()), this, SLOT(ConnectSucceed())); 看看