QTcp 线程中收发数据问题

void TCPTest::run()
{
QTcpSocket *m_socket = new QTcpSocket;
connect(m_socket,SIGNAL(readyRead()),this,SLOT(DataOpt()));
connect(m_socket,SIGNAL(connected()),this,SLOT(slotConnectSucess()));
connect(m_socket,SIGNAL(disconnected()),this,SLOT(slotDisconnect()));
connect(m_socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotErr(QAbstractSocket::SocketError)));

while(1)
{
    QHostAddress address("192.168.0.123");
    m_socket->connectToHost(address,12354);

    if (m_socket->waitForConnected(500))
    {
        break;
    }
}

while(1)
{   
    sleep(1);
    m_socket->write("test");
    m_socket->flush();
}

}
为什么这样写 readyRead信号和槽函数没有响应呢