Как создать собственный класс QTcpSocket в QNetworkAccessManagerC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как создать собственный класс QTcpSocket в QNetworkAccessManager

Сообщение Anonymous »

Как создать собственный класс QTcpSocket в QNetworkAccessManager?
Я хочу написать простое клиент-серверное приложение, которое будет взаимодействовать с использованием протокола HTTP.
Это будет простой веб-сервер http с QTcpServer и простой веб-браузер с QWebView и QTcpSocket.
Это приложение будет иметь два потока в одном процессе. Один поток для сервера и один поток для клиента. Клиент будет общаться с сервером по протоколу HTTP.
В этом случае связь между сервером и клиентом (с использованием HTTP) происходит через сеть.
Я хочу организовать связь (с использованием HTTP) между сервером и клиентом через некое межпроцессное взаимодействие (IPC). Например dbus или любой другой. Потому что HTTP — это текстовый протокол, и мы можем отправлять текстовые данные на сервер через сеть, dbus или любой IPC.
Я хочу организовать HTTP-связь через IPC для своего приложения, потому что я работаю на компьютере, где у меня нет root-прав, и закрыл все неиспользуемые порты и интерфейсы (включая петлю). Если QNetworkAccessManager использует сеть для HTTP-запросов, мне это ясно.
Можно ли в рамках QT создать MyCustomQTcpSocket, который будет унаследован от класса QTcpSocket? И MyCustomQTcpSocket будет записывать данные в dbus (или любой IPC) вместо TCP-сокета.
Я думаю, что если мы сможем создать собственный (например, MyQNetworkAccessManager) QNetworkAccessManager и после назначения MyQNetworkAccessManager для QWebView, то мы сможем создать собственный (например, MyCustomQTcpSocket) QTcpSocket и назначить MyCustomQTcpSocket для MyQNetworkAccessManager.
Я знаю, что мы можем создать собственный MyQNetworkAccessManager из QNetworkAccessManager и реализовать наш собственный метод createRequest, но если это сделать, нам также нужно будет создать собственную реализацию класса QNetworkReply, собственную реализацию слотов и сигналов и другие зависимости.
Если мы создадим собственный класс QTcpSocket, мы будем сможем перенаправлять текстовые данные из сети в dbus (или любой IPC), и мы сможем уменьшить собственную реализацию зависимостей (например, собственный QNetworkReply, сигналы, слоты).

Подробнее здесь: https://stackoverflow.com/questions/328 ... essmanager
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»