Режим Boost ASIO Proxy + режим клиент-сервераC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Режим Boost ASIO Proxy + режим клиент-сервера

Сообщение Anonymous »

У меня есть реализация прокси-сервера с использованием Boost ASIO, где прокси-сервер подключается к серверу только при подключении клиента, чтобы избежать проблем с синхронизацией. Новое требование — разрешить передачу данных с сервера на прокси, даже если ни один клиент не подключен. Эти данные должны быть перенаправлены клиенту после его подключения. Соответствует ли это режиму прокси-сервера или для этого варианта использования потребуется другой подход? Как мы можем адаптировать текущую реализацию с минимальными изменениями, или это потребует нового дизайна и серьезных изменений кода? Можем ли мы реализовать два режима: один, в котором прокси-сервер подключается на основе клиентского соединения, и другой, в котором прокси-сервер подключается к серверу напрямую (режим клиента)? Это позволило бы нам иметь два отдельных соединения с сервером: одно для режима прокси и другое для режима клиента, что позволило бы нам получать определенные данные с сервера независимо от клиентского соединения. Будем очень признательны за любые советы.


Example code and design approach used for the proxy implementation (credits to Sehe).
=============================================================
#include

#include

using namespace std::placeholders;
namespace asio = boost::asio;
using asio::ip::tcp;
using error_code = boost::system::error_code;
using socket_t = tcp::socket;

struct Settings {
struct endpoint {
std::string host;
uint16_t port;

friend std::ostream& operator

Подробнее здесь: https://stackoverflow.com/questions/792 ... erver-mode
Ответить

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

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

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

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

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