Как лучше всего наладить передачу данных между двумя приложениями на одном и том же компьютере на .NET?



@antonwx

Собственно, есть две программы, обе на .NET, надо наладить передачу данных из одной программы в другую. Собственно, очевидный и элементарный вариант — это просто бахнуть tcp соединение между двумя программами. Но что-то мне подсказывает, что это вариант далеко не самый эффективный по быстродействию. А мне критично быстродействие, точнее, время передачи данных, критично до десятков миллисекунд. Есть ли какие-то другие, более интересные и быстрые, а может даже и более надёжные методы, или даже не париться и просто делать через tcp? Приложения 100% всегда будут использоваться оба на одном компьютере.


Решения вопроса 1



@BasiC2k

Прочитайте про pipe
TCP не очень хороший вариант — будут срабатывать антивирусы.



3

комментария


Ответы на вопрос 4



@vabka Куратор тега C#

Точно видел 1 такой вопрос, но не могу найти его.
В общем тут кроме TCP/UDP под виндой есть два варианта:
  • Named pipe — можно поверх него любой произвольный протокол реализовать. Хоть HTTP
  • COM — но это уже больше легаси. И я хз что там со скоростью будет.



@petermzg

MemoryMappedFile просто шарите память между двумя и более процессами.



@d-stream

Как один из вариантов NetMQ используя транспорт InProc



@KoreanGuy

«Pushing C# to the limit — Joe Albahari» на ютюбе лежит. Оч интересно по теме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *