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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нужно создать веб сервис на Qt  (Прочитано 7142 раз)
lolbla2
Гость
« : Февраль 18, 2012, 16:43 »

Задача в следующем: есть вебсервис, есть веб клиент (получается браузерный). Клиент отправляет данные вебсервису, а вебсервис с ними чото там считает творит и в ответ результаты этих расчётов отсылает клиенту и у клиента уже по этим рассчётам рендерится картинка.

Посоветуйте чем воспользоваться? самое главное что включать нужно для вебсервисов в файл проекта .pro. Может какие-то адекватные (понятные, с исходниками) рабочие примеры есть?
Записан
merke
Гость
« Ответ #1 : Февраль 18, 2012, 19:49 »

есть такой класс стандартный QWebServis в .pro файле нужно написать CONFIG += stеbaslo  Смеющийся

Конечно же шутка)))

Юзай сокеты

в про файле пропиши QT += network

Вот классы которые нужно будет тебе раскурить QTcpServer, QTcpSocket.

Удачи!
Записан
lolbla2
Гость
« Ответ #2 : Февраль 18, 2012, 20:12 »

есть такой класс стандартный QWebServis в .pro файле нужно написать CONFIG += stеbaslo  Смеющийся

Конечно же шутка)))

Юзай сокеты

в про файле пропиши QT += network

Вот классы которые нужно будет тебе раскурить QTcpServer, QTcpSocket.

Удачи!
С QTcpServer, QTcpSocket знаком, писал сетевую поддержку для игры. А вот как раскурить QWebServis?
Записан
serega-5508
Гость
« Ответ #3 : Март 10, 2012, 13:34 »

чувак, тебя же наебнули ))))

QWebServis - нет такого набора классов! )))
Записан
lolbla2
Гость
« Ответ #4 : Март 10, 2012, 18:14 »

чувак, тебя же наебнули ))))

QWebServis - нет такого набора классов! )))

QWebService - нашёл, но он чот нифига норм не собирается из исходников
Записан
alliance
Гость
« Ответ #5 : Июнь 16, 2012, 19:59 »

Здравствуйте, проблема следующая :
пишу сервер на Qt средствами обыных QTcpServer и QTcpSocket
сервер висит на 127.0.0.1:2323 например
заходим в браузер, вводим данный адрес и сервер должен слать get ответ, чтобы в браузере отображалось сообщение
Код:
 QTcpSocket* clientSocket = (QTcpSocket*)sender();
    int idusersocs=clientSocket->socketDescriptor();
    QTextStream os(clientSocket);
    os.setAutoDetectUnicode(true);
    os << "HTTP/1.0 200 Ok\r\n"
          "Content-Type: text/html; charset=\"utf-8\"\r\n"
          "\r\n"
          "<h1>Nothing to see here</h1>\n"
          << QDateTime::currentDateTime().toString() << "\n";
    ui->textinfo->append("ReadClient:"+clientSocket->readAll()+"\n\r");
В общем программа постоянно падает, есть ли возможность средствами Qt отправлять именно гет ответ произвольному браузеру ?
Спасибо )
Записан
alexis031182
Гость
« Ответ #6 : Июнь 16, 2012, 20:13 »

Встроенных средств нет. Почему у Вас "падает" программа из приведённого кода непонятно.

Пара рекомендаций, т.к. аналогичным проектом занят:
- не используйте QDataSream и QTextStream, т.к. они добавляют в начало ответа 4 байта своей информации; ошибки не будет, но просто ни к чему это, т.к. клиент у Вас браузер; используйте write();
- если ответ содержит тело ответа (помимо заголовков), то необходимо указывать его длину, например через заголовок Content-Length
Записан
Serr500
Гость
« Ответ #7 : Июнь 17, 2012, 14:57 »

А падает она, скорее всего, потому, что sender() не QTcpSocket*. Вместо принудительного преобразования типов сделайте
Код:
QTcpSocket* clientSocket = qobject_cast<QTcpSocket*>(sender());
if (clientSocket != NULL) {
    qDebug("Шеф, усё в порядке!");
}
else {
    qWarning("Тут что-то не так!");
}
Записан
alliance
Гость
« Ответ #8 : Июнь 18, 2012, 14:25 »

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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