Как сделать одну чат программу из двух?
Я новичок, пишу небольшой Socket
и ServerSocket
чат на Java, и столкнулся с проблемой:
что у меня получилось две программы, одна - как-бы сервер, а вторая - как-бы клиент.
Почему как-бы?: потому что для нормального взаимодействия двух людей нужно, чтобы один скачал одну программу, а второй - вторую.
Это не совсем клиент и сервер, т.к., у сервера есть клиент, у клиента есть сервер.
И мне надо сделать, чтобы была одна программа у двоих, и чтобы они могли чатиться без проблем.
WhatsApp к примеру, одна программа, а работает у двоих. Помогите как-нибудь, пожалуйста.
Ответы (2 шт):
Оба клиента подключаются к одному серверу. Сервер копирует сообщение первого второму, второго первому.
В чём проблема в одну программу встроить сразу и сервер и клиент? Но в реальной жизни, как и с Whatsapp, есть отдельные сервера, обрабатывающие сообщения клиентов и направляющие их другим клиентам. В программе лишь клиент, который обращается к внешнему серверу, а этот сервер открывает компания, которая даёт этому серверу белый IP и начинает обработку сообщений, если не купить белый айпи - его не будет, а значит и связь между пользователями глобально - нереальна. В вашем примере вы конечно можете встроить в программу и клиента, и сервер, чтобы они работали в локальной сети, но советую поступить как и все - отдельному устройству закачать сервер, который будет обрабатывать сообщения двух и более клиентов.