И так, доброго вечера тем кто решил прочитать, и помочь =) 
Проблема вот в чем, есть TCP/IP сервер, который отлично работает по Ethernet,  и при этом отказывается принимать сообщения по 3G модему.
Код сервера
C++ (Qt)
void Cod::Start(int nPort)
{
    m_nNextBlockSize =0;
    m_ptcpServer = new QTcpServer(this);
 
    if (!m_ptcpServer->listen(QHostAddress::Any, nPort)) {
        m_ptcpServer->close();
        return;
    }
 
    connect(m_ptcpServer, SIGNAL(newConnection()),
            this,         SLOT(slotNewConnection())
           );
}
C++ (Qt)
void Cod::slotNewConnection()
{
    qDebug()<<"Slot new connection";
 
    QTcpSocket* pClientSocket = m_ptcpServer->nextPendingConnection();
 
    connect(pClientSocket, SIGNAL(disconnected()),
            pClientSocket, SLOT(deleteLater())
           );
    connect(pClientSocket, SIGNAL(readyRead()),
            this,          SLOT(slotReadClient())
           );
}
C++ (Qt)
void Cod::slotReadClient()
{
    QTcpSocket* pClientSocket = (QTcpSocket*)sender();
    QDataStream in(pClientSocket);
    in.setVersion(QDataStream::Qt_4_7);
 
    for (;;) {
 
        if (!m_nNextBlockSize) {
            if (pClientSocket->bytesAvailable() < sizeof(quint16)) {
                break;
            }
            in >> m_nNextBlockSize;
        }
 
        if (pClientSocket->bytesAvailable() < m_nNextBlockSize) {
            pClientSocket->waitForReadyRead(5000);
            break;
        }
 
        QString str;
        QByteArray arr;
        in >> arr;
        str = QString(arr);
 
        m_nNextBlockSize = 0;//размер входного буфера
        process(str, pClientSocket);
    }
}
при этом bytesAvailable вроде бы как правильное, а сообщение выглядит так: " ".
я понимаю что 3G медленный, но почему вообще ничего не приходит не знаю(