Задать вопрос

Клиент без сервера. На каких технологиях можно написать чат клиент без сервера?

Итак, немного с виду детский вопрос, но это не так.
Попробуйте написать свой взгляд на реализацию данного тз.

ТЗ

На компьютер А устанавливается программа клиент (допустим чат клиент).
На компьютер Б устанавливается эта же программа.
У обоих компьютеров динамический ip адрес.
Пользователи компьютеров А и Б могут с помощью этого ПО обмениваться информацией, в нашем случае текстом.
Как такое реализовать без использования сервера?
  • Вопрос задан
  • 4381 просмотр
Подписаться 12 Оценить 8 комментариев
Пригласить эксперта
Ответы на вопрос 10
Jump
@Jump
Системный администратор со стажем.
Такое никак не реализовать.
Это невозможно в принципе.

Единственное исключение - отсылать сообщение всем потенциально возможным получателем.
Но это реально реализовать только в небольшой сети.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
Это самая обычная схема p2p. По которой работают множество месенжеров...
Это вы описали схему работы Skype.
Ответ написан
Neuroware
@Neuroware
Программист в свободное от работы время
если речь о локалке то broadcast в UDP, в глобальной сети можно dht, но первичный сервер все равно будет нужен
Ответ написан
Комментировать
То, что вы описали, решили, например, в протоколе WebRTC. Почитайте его спецификацию и реализацию в браузерах.
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Так и гуглить - распределенная очередь сообщений, но нужна хотя бы одна машина со статическим wellknown IP для разрешения имен.
Кажется есть бесплатные сервисы, которые разрешают имена по динамическим адресам. Сам не пользовал, люди рассказывали.
Ответ написан
Комментировать
FuN_ViT
@FuN_ViT
веб-разработчик
Все равно нужен резолвер/маршрутизатор.

Я когда то делал подобный чат. Ничего не нашел лучше, как встроить в программу обмен ip через email.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
оба клиента должны быть одновременно и серверами друг для друга. Один должен инициировать связь, другой на нее ответить, и уже по установившейся сессии слать друг другу текст.
Ответ написан
Santacruz
@Santacruz
Cryptocurrencies + Trading
Firebase
Ответ написан
Комментировать
zo0m
@zo0m
full stack developer
Можно воспользоваться в качестве сервера каким-нибудь готовым бекендом, типа parse.com
т.е. логически сервер будет, но вам его не нужно будет конфигурить и вообще запариваться
Ответ написан
Комментировать
@Alex_Zorg
Вероятно можно еще использовать сеть Tor.
Пример реализации подобной задачи TorChat.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы