Я пытаюсь написать instant messenger
, который имеет client application
и server application
, которые должны запускаться отдельно на каждом клиентском компьютере и на сервере. , конечно, клиенты общаются друг с другом через socket
. , и я сохраняю информацию каждого клиента на сервере. это означает, что приложение клиента должно отправить регистрационную информацию на сервер и Waite, чтобы услышать результат. Я хочу знать, что является лучшим способом отправки информации на сервер? должен ли я отправить его через тот же socket
или что?Как отправить информацию для входа на сервер через сокет в java
ответ
Программирование сокетов - интересная тема в java. Он может использовать две основные методологии для программирования мгновенного мессенджера.
Я предполагаю, что вы знаете, как программировать сокеты и работать с потоками данных. Я только предоставляю логику обмена мгновенными сообщениями с логином.
1. Сервер-Клиент метода
Это требует два различных progammes таких клиентских приложений и сервер приложений. Вход пользователя на стороне сервера может быть выполнен только с помощью этого метода. Можно передавать данные, которые кодируются json или xml. Полученные данные декодируются в объект. Затем можно идентифицировать данные - это сообщение или информация для входа на сервер. Рассмотрим следующий пример.
- Создание объекта данных для передачи
класса TransmitData {
private String userName;//user name of sender
private String password;//password of the sender
private String toUser;//user name of receiver
private String type;//message type which is a message or login information
//message types
public static final String MESSAGE = "MESSAGE";
public static final String LOGIN_INFORMATION = "LOGIN_INFORMATION";
public TransmitData() {
}
//add getters and setters here
}
Затем конвертировать в XML или JSON строки
<transmit-data> <user-name></user-name> <password></password> <to-user></to-user> <message-type></message-type> </transmit-data>
После этого отправить данные XML через сокет-соединение
Decode сообщение на сервере
Определить тип сообщения и выполнить следующие действия
Однако сервер-клиент для обмена мгновенными сообщениями не могут быть использованы, когда сервер вне форума. Поэтому это не рекомендуется при использовании в локальной сети.
2. Peer-To-Peer метод
Peer-To-Peer экземпляра messegers имеет только одну программу, которая, содержащую как сервер и клиент кодирования. Это сложно разработать и выйти из логики при использовании входа на серверную учетную запись пользователя. Но вы можете легко добавить клиентскую логику в мессенджер. Можно добавить функции для поиска и добавления других пользователей в адресную книгу. Тогда я умру при использовании. В качестве преимущества он не требует сервера. Я думаю, что это очень хорошо, когда вы используете мессенджер в локальной сети.
Да, вам нужно открыть 'InputStream' и' OutputStream' для записи байтов на сервер для клиента.Для приложений типа входа мне нравится использовать 'ObjectInputStream' и' ObjectOutputStream', которые только мне ... – 3kings
Используйте InputStream и Outputstream из Socket для записи через. – Shriram
хорошо. Я собираюсь использовать те же потоки ввода/вывода для чата. это не проблема? –