Я изучаю возможность использования Peer 2 Peer вместе с WCF в приложении Windows для терминала EPoS.
Приложение будет находиться на нескольких компьютерах в локальной сети; на компьютере будет только один экземпляр приложения.
В настоящее время я думаю, что мое приложение запускается и присоединяется к одноранговой сети, при присоединении к сетке оно периодически выдает сообщение «heartbeat», которое содержит идентификатор терминала и адрес IPv6.
Любые другие терминалы, присоединяющиеся к сетке, получают эти пульсы и поддерживают свой собственный список терминалов в сети.
Для действий в приложении потребуется доступ к определенному терминалу в сети. Поэтому приложение разрешает идентификатор терминала в IP-адрес и может генерировать Uri для доступа к услуге через net.tcp
Я опубликовал конечную точку службы, используя локальный адрес ссылки
printingHostRemote = New ServiceHost(printSpooler, New Uri("net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService))
printingHostRemote.AddServiceEndpoint(GetType(IPrintingService), tcpPipeBinding, "net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService)
Строка для настройки конечной точки будет, например:
"net.tcp: // [FE80 :: 250: 56ff: FEC0: 8% 4]: 5555 / GSS-POS / PrintingService"
Однако, когда я пытаюсь получить доступ к этой службе, я получаю сообщение об ошибке, что хост недоступен.
Код ошибки TCP 10065: была предпринята попытка операции с сокетом для недоступного хоста fe80 :: 290: 5ff: fe01: 6303% 4: 5555
Я понимаю, что это связано с моим ограниченным знанием адресации IPv6. Какой адрес я должен использовать для своей конечной точки (я использую ссылку локальный адрес IPv6)? Или моя общая концепция ошибочна?
TIA,
Simon