Нужно уточнить концепцию применения локальной сети - PullRequest
1 голос
/ 05 февраля 2012

Недавно я разработал простое приложение для чата в Java, используя сокеты.Работало нормально.Но теперь я хочу сделать приложение, которое может общаться через локальные сети, такие как IPMSG.Возможности будут

  1. отправка сообщений.
  2. отправка файлов.
  3. голосовой чат.
  4. групповой чат.
  5. шифрование / дешифрование по требованию.

Это были основные функции, которые должны быть включены.

Теперь путаница, с которой я здесь сталкиваюсь,

  • Приложение представляет собой одноранговое приложение, в котором один пользователь может делать все то же, что и другие пользователи.
  • Нет централизованного сервера и нет клиента.Каждый узел действует как сервер и клиент.

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

Ответы [ 3 ]

0 голосов
/ 05 февраля 2012

Возможно, вы захотите проверить стандарт Zeroconf и пакеты, в которых он используется, например Avahi (linux FOSS) или Bonjour (Apple & Windows с открытым исходным кодом но не GPL). Zeroconf позволяет конфигурировать и обнаруживать сетевые сервисы без участия пользователя или сервера централизованного конфигурирования.

0 голосов
/ 06 мая 2013

Я использую модель клиент-сервер, модифицированную для поддержки сетей P2P. Когда узел входит в сеть, он передает свое присутствие, а другие узлы постоянно прослушивают новые узлы. У каждого узла будет свой список подключенных узлов в сети. В случае прихода нового узла в сеть они обновят свои списки. Я использую UDP для всех большинства всех операций, кроме передачи файлов, как это должно быть в TCP.

0 голосов
/ 05 февраля 2012

Я думаю, что основная причина, по которой рекомендуется установить связь между сервером и клиентом, заключается в том, чтобы облегчить ведение журнала или создать большой чат для всех (например, IRC).Если требуется вход в систему, сервер также проверит данные для входа.Поэтому без промежуточного сервера бороться с фишинговыми атаками стало бы сложнее.

Однако я не понимаю, почему P2P-чат не работает.Если я правильно помню, Skype делает это.Я всегда люблю децентрализацию.Удачи с вашим проектом.:)

...