Разработка справки программы чата Serverless Lan!

Итак, ошибка была в другом файле. Я пропустил этот факт, посмотрев в диалог отладки кода VS, к которому я не привык. Это заставило меня думать, что ошибка была в основном файле. Позже я также посмотрел на простую ошибку Python, но уже убедился, что с основным файлом что-то есть.

6
задан caltuntas 20 December 2008 в 20:54
поделиться

3 ответа

Самый простой путь состоял бы в том, чтобы использовать UDP и просто широковещательно передать Ваши сообщения на всем протяжении сети. Немного больше усовершенствованной версии состояло бы в том, чтобы только использовать широковещательную передачу для обнаружения других узлов в сети.

  • Каждый узел ведет список известных коллег.
  • Сообщения отправляются с TCP всем известным коллегам.
  • Когда узел запускает, он отсылает широковещательную передачу UDP для обнаружения других узлов.
  • Когда узел получает широковещательную передачу исследования, он отправляет "себя" в источник широковещательной передачи для создания его сам известным. Узел получения добавляет вещательную компанию к своему собственному списку известных коллег.
  • Когда узел выпадает из сети, он отправляет другую широковещательную передачу, чтобы сообщить остающимся узлам, что они должны удалить отброшенный клиент из своего списка.

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

10
ответ дан 9 December 2019 в 22:41
поделиться

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

От аннотации:


Распространение является инструментарием с открытым исходным кодом, который обеспечивает высокопроизводительную службу обмена сообщениями, которая эластична к отказам через локальные сети и глобальные вычислительные сети. Распространение функционирует как объединенную шину сообщения для распределенных приложений и обеспечивает высоко настроенную многоадресную передачу прикладного уровня, коммуникацию группы и поддержку точка-точка. Услуги по распространению колеблются от надежного обмена сообщениями до полностью заказанных сообщений с гарантиями доставки.

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

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

Некоторые сервисы и преимущества, предоставленные Распространением:

  • Надежный и масштабируемый обмен сообщениями и коммуникация группы.
  • Очень мощный, но простой API упрощает конструкцию распределенных архитектур.
  • Простой в использовании, разверните и поддержите.
  • Хорошо масштабируемый от одной локальной сети до сложных глобальных вычислительных сетей.
  • Поддержки тысячи групп с различными группами участников.
  • Включает надежность сообщения в присутствии аппаратных сбоев, катастрофических отказов процесса и восстановлений, и разделений сети и слияний.
  • Обеспечивает диапазон надежности, упорядочивания и гарантий устойчивости сообщений.
  • Акцент на устойчивость и высокую производительность.
  • Полностью распределенные алгоритмы без центральной точки отказа.
1
ответ дан 9 December 2019 в 22:41
поделиться

IChat яблок является примером самого продукта, который Вы предполагаете. Это использует Добрый день (нулевой-conf сетевой протокол яблока) для идентификации коллег на LAN. Можно затем болтать или аудио/видео-чат с ними.

Я не совсем уверен, как Добрый день работает внутри, но я знаю, что это использует многоадресную передачу. Клиенты "регистрируют" сервисы на LAN, и Добрый день, протокол позволяет, чтобы каждый хост потянул каталог хостов к данному сервису (все без централизованного управления).

0
ответ дан 9 December 2019 в 22:41
поделиться