Russian Qt Forum
Ноябрь 25, 2024, 06:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы TCP/IP сервера при работе с 3G модемом  (Прочитано 1756 раз)
Givoi
Гость
« : Сентябрь 03, 2012, 19:42 »

И так, доброго вечера тем кто решил прочитать, и помочь =)
Проблема вот в чем, есть 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 медленный, но почему вообще ничего не приходит не знаю(
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.101 секунд. Запросов: 20.