crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Срочно нужна помощь, QTcpServer
Гость_Slon_*
сообщение 7.6.2010, 2:10
Сообщение #1





Гости








    


Нужна срочно помощь по написанию сервер-клиент приложения, нада чтоб с клиента передавался запрос (стринг) и от того что в стринге сервер отсылает ответ...
читаю на сервере при входящем соединении
void Server_Cast::incomingConnection(int socketDescriptor)
{

    //QMessageBox::information(0,"",re);
    /*ClientSocket *socket  = new ClientSocket (this);
    if (!socket->setSocketDescriptor(socketDescriptor)) {
        emit error(socket->error());
        return;
    }*/


     QTcpSocket tcpSocket;
     if (!tcpSocket.setSocketDescriptor(socketDescriptor)) {
         emit error(tcpSocket.error());
         return;
     }

     QDataStream in(&tcpSocket);
     in.setVersion(QDataStream::Qt_4_0);
qDebug () <<"Size 1"<<blockSize;
     if (blockSize == 0) {
         if (tcpSocket.bytesAvailable() < (int)sizeof(quint16))
             return;
        qDebug () <<"Size"<<blockSize;
         in >> blockSize;
     }
     qDebug () <<"Size 2"<<blockSize<<" df "<<tcpSocket.bytesAvailable();
     if (tcpSocket.bytesAvailable() < blockSize) {return;}
qDebug () <<"Size 3"<<blockSize;
     QString nextFortune;
     in >> nextFortune;


дебаг пишет
Size 1 65196
Size 2 65196 df 0
Size 3 65196

с клиента пишу :
QString fortune, ty;
     fortune = "as";
     ty = "cv";
     Client_cast_Thread *thread = new Client_cast_Thread(fortune, this);
     connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
     thread->start();

где Server_cast_Thread:
QByteArray block;
     QDataStream out(&block, QIODevice::WriteOnly);
     out.setVersion(QDataStream::Qt_4_0);
     out << (quint16)0;
     out << text;
     out.device()->seek(0);
     out << (quint16)(block.size() - sizeof(quint16));
        qDebug() << blockSize;
     tcpSocket.write(block);
     //tcpSocket.flush();
     tcpSocket.waitForReadyRead();


дебаг видает размер 61453 block вроде правильно отравляется..
запись вызываю с tcpSocket SIGNAL(connected());
Пытался на сервере конект функции чтения сделать от сигнала readReady();
Не вызывается вообще ничего в результати, если я понял даные с клиента просто не доходят до сервера, так как при поступлении даных сразу появляеться сигнал readReady(); Подскажите как организовать отсилку запроса из клиента серверу... Куда копать... Заранее спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.1.2025, 1:43