Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
1

Написание прокси сервера на сокетах. Проброс сообщений основному серверу и возврат значений через прокси

15.12.2015, 12:55. Показов 3099. Ответов 1

Author24 — интернет-сервис помощи студентам
Есть 3 приложения.
1. Клиент.
2. Прокси сервер.
3. Сервер.

Что задумано: Запускается клиент и получает параметры конфигурации с сервера. Нужен теперь посредник. Клиент обратился к посреднику (Прокси сервер), посредник передал запрос на сервер, сервер его обработал, вернул посреднику. а посредник клиенту.

Технические детали: Клиент запрашивая данные ждёт не более 5 секунд, иначе вылетает исключение, коннект закрывается. И этого не изменить, проект большой и давно написан.

Вопрос:
Нормально ли получив на прокси сервере сообщение тут же сразу его по существующему коннекту (сокету) передать серверу и запросив чтение из сокета получить ответ и сразу же его передать клиенту? Обычно это так делается? Или нужно что-то делать типа очереди сообщений и т.д.? Где про это почитать можно?

То есть, если прокси сервер не будет подключен к серверу, то получив сообщение от клиента он просто ничего не вернёт и клиент ничего не получит закрыв соединение. Хотя какие другие есть тут варианты я даже не знаю.

Добавлено через 43 секунды
Под сообщениями я понимаю сериализованный данные. В общем есть свой бинарный протокол.

Добавлено через 41 секунду
Сервер получив сообщение определяет его тип (число по сути, а в программе enum) и в зависимости от типа уже принимаем решение, что с ним делать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2015, 12:55
Ответы с готовыми решениями:

При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера
При передаче post запроса через прокси сервер в ответ прилетают ошибки с прокси сервера:...

Запросы к серверу через прокси C#
Доброго времени суток,помогите пожалуйста,мне нужно отправить на сайт 500 запросов с разных...

Библиотека Mail.NET не подключается к IMAP серверу через прокси
Всем здравствуйте. Кто-нибудь работал с библиотекой Mail.NET? Пишу программу, которая...

Цепочка прокси / Как не спалить IP сервера перед прокси
Здравствуйте, такая проблема. Есть свой сервис, который производит автоматический парсинг...

1
Эксперт .NET
17769 / 12922 / 3378
Регистрация: 17.09.2011
Сообщений: 21,194
15.12.2015, 15:12 2
Цитата Сообщение от Casper-SC Посмотреть сообщение
Нормально ли получив на прокси сервере сообщение тут же сразу его по существующему коннекту (сокету) передать серверу и запросив чтение из сокета получить ответ и сразу же его передать клиенту? Обычно это так делается?
Прокси сервер по возможности должен быть максимально прозрачным для сервера и для клиента, потому рекомендуется подход "что получил, то и отправил" (ну, если не нужна всякая фильтрация или изменение пакетов).
Внедряя какую-то очередь, вы можете нарушить используемый протокол, в котором, к примеру, ответ на позднее отправленное сообщение должен прийти от сервера раньше, чем ответ на ранее отправленное сообщение. Или, еще хуже, ранее отправленное сообщение вообще должно быть проигнорировано, а вы сидите в очереди и ждете на него ответа.
1
15.12.2015, 15:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2015, 15:12
Помогаю со студенческими работами здесь

Libcurl - не могу подключиться к серверу через прокси
curl_handle = curl_easy_init(); if(curl_handle) { ...

Как быстро скачивать через прокси с файлообменников или без использования прокси
Доброго времени суток, как вы возможно знаете, для загрузки с облака маил ру или ядаа пользователи...

Обращение к удаленному серверу через прокси используя winsock
Здравствуйте. Подскажите, пожалуйста. Как можно обратиться к удаленному серверу, для получения...

настройка веб-сервера через прокси
Подскажите пожалуйста как настроить веб сервер IIS так чтобы он обращался к ресурсам в Internet...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru