crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Протокол взаимодействия
xbarmaglot
  опции профиля:
сообщение 7.9.2012, 19:25
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 29.8.2012
Пользователь №: 3502

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня есть сервер и клиент реализованные на синхронных операциях.
Все запросы клиента обрабатываются последовательно на сервере.
Если клиент посылает запрос, то ответ с сервера приходит именно на этот запрос.
Поток на отправку сообщений один. Поэтому несколько клиентов тоже будут обрабатываться последовательно.

Но тут возникла необходимость переехать на QT-ые объекты QTcpServer и QTcpSocket.
Сразу возникла проблема синхронных вызовов методов сокета.

1. Использование потоковых объектов (QDataStream, QTextStream, ...) внося большую задержку
при отправке данных. Похоже это связано с буферизацией. Ее можно отключить ?
2. Не получается после операции записи синхронно висеть на чтении для получения данных.
Не помогает waitForReadyRead. На нем постоянно висяк. Данные приходят лишь на слот readyRead,
но тогда не получается добиться синхронности.
3. Ну и самая сложная часть. Это все работало пока была схема запрос клиента — ответ сервера.
Но еще понадобилось инициатором запроса быть самому серверу. Но эти операции можно сделать не синхронными.
То есть на запрос сервера ответ может быть, а может и не быть.

Как тогда можно реализовать двухстороннюю схему запросов, при которой клиен выполняет синхронные запросы,
а сервер асинхронные ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 15.1.2025, 19:25