Функция обнаружения P2P

Я хотел бы знать, как реализовать функцию обнаружения в P2P-сети LAN. Я не хочу использовать P2P-библиотеку .NET 3.5, я хочу спроектировать ее сам. В тот момент, когда пользователь нажимает кнопку Connect, он отправляет широковещательное сообщение в локальной сети, информируя других пиров, что он доступен. другие одноранговые узлы в принимающем потоке идентифицируют это сообщение и по своей воле могут установить соединение. Например: Машина 1 с IP-адресом 192.168.0.101 нажимает кнопку подключения и отправляет сообщение «Command.Connect» по адресу «255.255.255.255» для широковещательной передачи. Машина 2 с IP-адресом 192.168.0.102 ожидает в потоке сообщений Udp и идентифицирует этот одноранговый узел с IP-адресом 192.168. .0.102 Когда пользователь нажимает "Отключить", аналогичным образом отправляется другая команда "Command.Disconnect". Подскажите, пожалуйста, хорошая ли идея для обнаружения пиров в локальной сети?


person Mihaescu Florin    schedule 26.07.2012    source источник
comment
просмотрите эту ссылку stackoverflow.com/questions/6829141/   -  person arun kumar non ascii    schedule 02.08.2012


Ответы (1)


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

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

person Tayyab    schedule 04.08.2012
comment
Большое спасибо, Тайяб! Я думаю, что перейду на систему, управляемую сервером P2P, для моего проекта видеоконференцсвязи. - person Mihaescu Florin; 12.08.2012