Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 4167|Отговор: 6

[Източник] .NET/C# NamedPipe-базирана комуникация между процеси [с изходен код]

[Копирай линк]
Публикувано в 16.07.2023 г. 14:47:29 ч. | | | |
Изисквания: Две програми в компютъра се нуждаят от еднопосочна комуникация и не искат да използват Socket и Http методи за комуникация, Socket трябва да слуша портове, а при конфликти на портове те трябва да бъдат разрешени, след което трябва да обмислят механизма за повторно свързване и т.н., Http методът е твърде неефективен и често създава и унищожава TCP връзки. След това анонимният конвейер на AnonymousPipe изисква процес родител-дете и не го взема предвид.

Използвайте именувани конвейери за комуникация между мрежови процеси:Входът към хиперлинк е видим.

Именуваните конвейери осигуряват междупроцесна комуникация между сървъра на конвейера и един или повече клиенти. Те предлагат повече функционалности от анонимните конвейери, които се използват за осигуряване на междупроцесна комуникация на локалната машина. Именуваните конвейери поддържат пълнодуплексна комуникация между мрежи и множество сървърни инстанции, комуникация на база съобщения и емулация на клиенти, така че процесите за връзка да могат да използват собствените си разрешения на отдалечени сървъри.

Нека първо разгледаме визуализациите:



Използвайте PowerShell, за да видите именувания конвейер, който е отворен (Възможно е да се види и чрез браузър), командата е следната:



.NET 6 като команден конвейер NamedPipeServerStream сървър, кодът е следният:

Програмата .NET Framework изпраща данни като клиент NamedPipeClientStream, със следния код:

Изтегляне на изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор






Предишен:ASP.NET MVC брои заявки въз основа на IHttpModule модули
Следващ:Кодирана композиция на струни в Base64 (кои символи са в Base64)
Публикувано в 17.07.2023 г. 0:11:47 ч. |
Научи се да учиш
 Хазяин| Публикувано в 20.07.2023 г. 19:22:21 ч. |
Когато идентификационният акаунт в IIS пула на приложения е ApplicationPoolIdentity, NamedPipeServer с име конвейер не може да бъде достъпен и достъпът е недостатъчен.

решение

Проект .NET Framework


Проект .NET Core



 Хазяин| Публикувано в 20.07.2023 г. 19:23:01 ч. |
Публикувано в 25.07.2023 г. 8:47:15 ч. |
Много практични умения трябва да се придобият
Публикувано в 10.04.2024 г. 17:31:24 ч. |
Идеята е добра, искам да науча.
 Хазяин| Публикувано в 11.08.2025 г. 20:58:15 ч. |
.NET/C# процесите комуникират между gRPC и Unix домейн сокети
https://www.itsvse.com/thread-11051-1-1.html
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com