2015-08-03 3 views
0

для проекта для школы Мне нужно написать чат-программу.java chat program (p2p)

то, что я до сих пор:

пользователей базы данных (Имя пользователя, Пароль, IPAddress, onlineStatus) LoginForm mainChatForm registerForm

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

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

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

Если кто-то может мне помочь, это было бы здорово.

Благодаря

DenTilloZie

+1

Этот вопрос слишком широк. Вы должны начать с малого (например, попробуйте открыть соединение с одной машины на другую), и если вы столкнетесь с * конкретными * проблемами, спросите о них здесь. – user1886323

ответ

0

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

1

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

Чтобы инициировать чат с кем-то, пользователь просмотрит список онлайн-пользователей на центральном сервере, выберет IP-адрес человека, с которым они хотят общаться, и затем подключится к ним напрямую через P2P-соединение.

Все, что вам нужно знать о фактическом внедрении, это API или stackoverflow. Если у вас есть более конкретные вопросы о реализации, вы должны, вероятно, задать еще один конкретный вопрос.

+0

Мне не нужен центральный сервер. в программе, которую я сделал до сих пор, есть список пользователей (есть класс User, который содержит всю информацию), которые находятся в сети. Идея в том, что есть только база данных со всеми зарегистрированными пользователями. программа получает пользователей и UserInfo из базы данных. когда пользователь нажмет на другого пользователя, он сможет начать чат. –

+0

Как другие пользователи должны знать адрес других пользователей? Вы не можете просто вызвать Стива на свой телефон и попросить его IP-адрес, и IP-адреса меняются. Вы можете сохранить свои адреса в базе данных (но это по-прежнему в основном центральный сервер). – mattg123

+0

при входе в систему пользователь ip проверяется и сохраняется в базе данных. поэтому, когда пользователь нажимает имя пользователя, программа получает ip выбранного пользователя из базы данных. извините за то, что не ясно. его несколько, как вы сказали, но на самом деле не центральный сервер только для базы данных –