Вимоги: Дві програми в комп'ютері потребують одностороннього зв'язку, і вони не хочуть використовувати методи Socket та Http для спілкування, Socket має слухати порти, а у разі конфліктів портів їх вирішувати, а потім враховувати механізм повторного підключення тощо, метод Http надто неефективний і часто створює та руйнує TCP-лінки. Тоді анонімний конвеєр AnonymousPipe потребує процесу «батько-дочір» і не враховує його.
Використовуйте іменовані конвеєри для міжмережевої комунікації процесів:Вхід за гіперпосиланням видно.
Іменовані конвеєри забезпечують міжпроцесний зв'язок між сервером конвеєра та одним або кількома клієнтами конвеєра. Вони пропонують більше функціональності, ніж анонімні конвеєри, які використовуються для забезпечення міжпроцесної комунікації на локальній машині. Іменовані конвеєри підтримують повнодуплексне спілкування між мережами та кількома екземплярами серверів, комунікацію на основі повідомлень і емуляцію клієнтів, щоб процеси підключення могли використовувати власні набори дозволів на віддалених серверах.
Давайте спочатку розглянемо рендери:
Використовуйте PowerShell, щоб переглянути відкритий іменований конвеєр (Також можливо переглянути його за допомогою браузера), команда виглядає так:
.NET 6, як сервер командного конвеєра NamedPipeServerStream, код виглядає так:
Програма .NET Framework надсилає дані як клієнт NamedPipeClientStream з таким кодом:
Завантаження вихідного коду:
Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласка Відповідь
|