@snegirev_news

Можно ли в клиент-серверном приложении на клиенте подключиться к другому клиенту?

Суть вопроса вот в чем. Клиент подключается к серверу и сервер запоминает подключившегося клиента (объект типа сокет в List). Как мне организовать работу и что передавать обратно с сервера на клиент, если мне надо, чтобы передача именно данных происходила только между клиентами (в обход сервера)?!
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 2
soshnikov
@soshnikov
Каждый клиент должен реализовывать функции сервера, т.е. уметь принимать и обрабатывать входящие подключения. Основной сервер передает клиентам данные подключения других клиентов и они подключаются друг к другу напрямую.
Не будет работать, если клиент находится за натом и не настроен проброс необходимых портов.
Ответ написан
@bbkmzzzz
Клиент - часть клиент-серверного приложения, которое по умолчанию только подключается.
Сервер - только принимает подключения.
Что бы клиент мог принимать подключения, он должен быть еще и сервером. Таким образом он перестает быть чисто клиентом и становится гибридом.

Схема примерно такая:
клиент подключается к серверу
сервер передает информацию о других клиентах и закрывает соединение, ведь он больше не нужен.
клиент подключается к другим клиентам, используя информацию от сервера.

архитектурные вопросы)
Ко всем сразу, кстати?
А если клиентов в сети 1000?
на каждом компьютере по 1000 активных подключений для одной программы?
Или клиент подключается по мере необходимости?
Тогда как быть с уже закрытым клиентом на той стороне?

Лучше для общей коммуникации использовать сервер, а соединение клиент-клиент использовать для передачи больших объемов данных, например файлов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Panda Media Нижний Новгород
от 70 000 руб.
от 350 000 до 600 000 руб.
Popmechanic Москва
от 100 000 до 150 000 руб.
19 авг. 2018, в 00:49
600 руб./в час
18 авг. 2018, в 17:54
6000 руб./за проект
18 авг. 2018, в 16:00
60000 руб./за проект