Как сделать одну чат программу из двух?

Я новичок, пишу небольшой Socket и ServerSocket чат на Java, и столкнулся с проблемой:

что у меня получилось две программы, одна - как-бы сервер, а вторая - как-бы клиент.

Почему как-бы?: потому что для нормального взаимодействия двух людей нужно, чтобы один скачал одну программу, а второй - вторую.

Это не совсем клиент и сервер, т.к., у сервера есть клиент, у клиента есть сервер.

И мне надо сделать, чтобы была одна программа у двоих, и чтобы они могли чатиться без проблем.

WhatsApp к примеру, одна программа, а работает у двоих. Помогите как-нибудь, пожалуйста.


Ответы (2 шт):

Автор решения: eri

Оба клиента подключаются к одному серверу. Сервер копирует сообщение первого второму, второго первому.

→ Ссылка
Автор решения: Mixadyt

В чём проблема в одну программу встроить сразу и сервер и клиент? Но в реальной жизни, как и с Whatsapp, есть отдельные сервера, обрабатывающие сообщения клиентов и направляющие их другим клиентам. В программе лишь клиент, который обращается к внешнему серверу, а этот сервер открывает компания, которая даёт этому серверу белый IP и начинает обработку сообщений, если не купить белый айпи - его не будет, а значит и связь между пользователями глобально - нереальна. В вашем примере вы конечно можете встроить в программу и клиента, и сервер, чтобы они работали в локальной сети, но советую поступить как и все - отдельному устройству закачать сервер, который будет обрабатывать сообщения двух и более клиентов.

→ Ссылка