[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Задания на дом » Homework Mid » Задание №5 (Сетевое программирование, сериализация, XML.)
Задание №5
xnordmanДата: Пятница, 21.03.2014, 01:26 | Сообщение # 1
Сержант
Группа: Администраторы
Сообщений: 29
Репутация: 0
Статус: Offline
1.     Напишите программудля общения через Internet. Программа должна состоять из двух частей: сервер
и клиент. Сервер стартует в качестве отдельного приложения на определенном
порту (задано в конфигурации). Клиент в виде приложения на Swing подсоединяется к
серверу по имени сервера и номеру порта.
2.     Минимальные возможностичата:
·        каждыйучастник чата имеет собственный ник, который указывается при присоединению к
серверу.
·        можнопосмотреть список участников чата.
·        можно послатьсообщение в чат (всем участникам).
·        клиентпоказывыает все сообщения, которые отправили в чат с момента подключения +  некоторое число, отправленных до; списоксообщений обновляется в онлайне.
·        клиентотображает такие события как: подключение нового человека в чат и уход человека
из чата. Сервер должен корректно понимать ситуацию отключения клиента от чата
(по таймауту).
·        сервер долженлоггировать все события, которые происходят на его стороне
(включается/отключается в конфигурационном файле).
·        чат работаетчерез TCP/IP протокол.
3.     Необходимосоздать 2 версии клиента/сервера. Первый вариант сериализацию/десериализацию
Java-объектов  для посылки/приемасообщений (25 баллов), второй - использует XML сообщения (+15 баллов).
4.     Клиент и сервердолжны поддерживать стандартный протокол для XML варианта. Это необходимо для возможности общение
между клиентами, созданными разными учениками. Протокол описан ниже. Расширения
протокола приветствуются, например можно добавить, чтобы пользователь мог
выбрать цвет сообщений.
Вначале XML сообщения идут 4 байта (Java int) с его длиной. То есть сначала читаются первые 4
байта и узнается длина оставшегося сообщения (в байтах). Затем считывается само
сообщение и далее обрабатывается как XML документ.
5.     Рекомендуетсяиспользовать следующие техники:
·        Серверслушает порт с помощью класса java.net.ServerSocket
·        Клиентподсоединяется к серверу с помощью класса java.net.Socket
·        XML сообщение читать с помощью DOM parser:
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse()
·        Сериализация/десериализацияобъекта выполняется через классы ObjectInputStream и ObjectOutputStream
 
Минимальный протокол взаимодействия для XML сообщений (расширения приветствуются):
1.     Регистрация
a.      Client message
<command
name=”login”>
           <name>USER_NAME</name>
           <type>CHAT_CLIENT_NAME</type>
</command>
b.     Server error answer
<error>
           <message>REASON</message>
</error>
c.      Server success answer
<success>
           <session>UNIQUE_SESSION_ID</session>
</success>
2.     Запрос спискапользователей чата
a.      Client message
<command
name=”list”>
           <session>UNIQUE_SESSION_ID</session>
</command>
b.     Server error answer
<error>
           <message>REASON</message>
</error>
c.      Server success answer
<success>
           <listusers>
                       <user>
                                   <name>USER_1</name>
                                   <type>CHAT_CLIENT_1</type>
                       </user>
                       …
                       <user>
                                   <name>USER_N</name>
                                   <type>CHAT_CLIENT_N</type>
                       </user>
           </listusers>
            </success>
3.     Сообщение отклиента серверу
a.      Client message
<command
name=”message”>
<message>MESSAGE</message>
<session>UNIQUE_SESSION_ID</session>
</command>
b.     Server error answer
<error>
           <message>REASON</message>
</error>
c.      Server success answer
<success>
</success>
4.     Сообщение отсервера клиенту
a.      Server message
<event name="message">
                       <message>MESSAGE</message>
                       <name>CHAT_NAME_FROM</name>
</event>
5.     Отключение
a.      Client message
<command
name=”logout”>
<session>UNIQUE_SESSION_ID</session>
</command>
b.     Server error answer
<error>
           <message>REASON</message>
</error>
c.      Server success answer
<success>
</success>
6.     Новый клиент
a.      Server message
<event
name=”userlogin”>
           <name>USER_NAME</name>
</event >
7.     Клиентотключился
a.      Server message
<event
name=”userlogout”>
           <name>USER_NAME</name>
</event >
 
Форум » Задания на дом » Homework Mid » Задание №5 (Сетевое программирование, сериализация, XML.)
  • Страница 1 из 1
  • 1
Поиск: