Клиент без сервера. На каких технологиях можно написать чат клиент без сервера?
Итак, немного с виду детский вопрос, но это не так.
Попробуйте написать свой взгляд на реализацию данного тз.
ТЗ
На компьютер А устанавливается программа клиент (допустим чат клиент).
На компьютер Б устанавливается эта же программа.
У обоих компьютеров динамический ip адрес.
Пользователи компьютеров А и Б могут с помощью этого ПО обмениваться информацией, в нашем случае текстом.
Как такое реализовать без использования сервера?
Это возможно в подсети, внутри которой ходят броадкасты. Т.е. именно от размеров тут дело не зависит, это должна быть либо одна подсеть, либо несколько с маршрутизацией броадкастов.
АртемЪ: Конечно, в большой сети начиная с какого-то размера кол-во мусорного трафика превысит разумные пределы, и софтина перестанет функционировать. Но и в маленькой сети ничего работать не будет, если не будут ходить броадкасты.
Tuccro:
Skype по первоначальной своей структуре p2p, и у него просто не было таких серверов, где он мог бы хранить трафик, сервера о использовал только для авторизации.
Что они могли там наделать сейчас, после продажи Microsoft - это один Бог знает.
Skype и сейчас использует схему p2p при передаче голоса и видео. Иначе очень накладной весь этот левый трафик гнать на сервер, а потом другому клиенту. Сервер используется в те моменты, когда клиенты не могут между собой организовать прямой канал обмена данными.
Но что бы произвести соединение по-любому нужен централизованный сервер.
Для установления WebRTC соединения все равно нужен сигнальный сервер, через который сначала клиенты обмениваются, грубо говоря, своими IP адресами, чтобы потом соединиться уже напрямую.
Так и гуглить - распределенная очередь сообщений, но нужна хотя бы одна машина со статическим wellknown IP для разрешения имен.
Кажется есть бесплатные сервисы, которые разрешают имена по динамическим адресам. Сам не пользовал, люди рассказывали.
оба клиента должны быть одновременно и серверами друг для друга. Один должен инициировать связь, другой на нее ответить, и уже по установившейся сессии слать друг другу текст.
Stalker_RED: А никак. Для этого и нужен сервер - чтобы к нему обратиться.
Тот же скайп связывается клиент с клиентом, но только потому что изначально скайп авторизировался на сервере и сервер уже подсказывает клиентам куда и чего коннектиться в случае чего.
Можно воспользоваться в качестве сервера каким-нибудь готовым бекендом, типа parse.com
т.е. логически сервер будет, но вам его не нужно будет конфигурить и вообще запариваться