Windows için C arası iletişim# (.2.0 NET)
Hiç daha önce Windows üzerinde IPC yapmak zorunda kaldım. Şu anda programlar, standart/GUI CLİ bir uygulaması ve bir windows hizmeti bir çift geliştiriyorum. App ne hizmeti söylemeli. Yani, bu iletişim yerel olduğunu varsayarak sadece bu iki işlem için en iyi iletişim yöntemi ne olurdu?
Daha sağlam ve daha az hata eğilimli olarak tanımlandığı, en ölçülebilir ne de kod kolay değil.
Kod örnekleri çok hoş olacak, ama gerekli değil mi :-)
Kullanmak için, standart bir TCP soket, borular veya iletişim başka yollarla adlı soruyorum sadece not.
Teşekkürler!
CEVAP
IPC .Net kullanarak elde edilebilir:
XML
kullanarak adlandırılmışgerektirir .Net 3.0ve yukarıda.
Kod örneği
- Bisiklet Federasyonu sınıfNetNamedPipeBindingişlemler arası iletişim için kullanılan aynı makine üzerinde. Bu sınıf için TechNet belgelerini bir kod örneği bu senaryo http://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding.aspx kapsayan içerir
Uzak
Orijinal IPC çerçeve ile yayınladı .Net 1.0. Uzak artık aktif olarak geliştirilmekte olduğuna inanıyorum, ve XML, yerine kullanmak için teşvik edilir
Kod örneği
Inter-process communication via Remoting - tcp kanalı kullanır
Kaynaklar
- GenuineChannels, Paylaşılan Bellek Kanalı içeren uzak bir araç satmak. http://www.genuinechannels.com/Index.aspx
- * *3, kesin yazdı .Net uzak kitap, Advanced .NET Remoting, Second Edition
Win32 RPC csharptest-net RpcLibrary kullanarak
Win32 RPC kitaplığı tamamladı ve bir oluşturulan bir proje yakın zamanda rastladım .net sınıf kitaplığı, yerel ve uzak RPC için kullanılabilir
Proje ana sayfası: http://csharptest.net/projects/rpclibrary/
MSDN kaynaklar:
- Rpc nasıl çalışır: http://technet.microsoft.com/en-us/library/cc738291(v=ws.10).aspx
- RPC işlevleri: http://msdn.microsoft.com/en-us/library/aa378623(v=VS.85).aspx
Ayrıca kütüphane üstünde çalışan rpc istemci tamponlar google bir kuralı vardır: https://code.google.com/p/protobuf-csharp-rpc/
WM_COPYDATA
Bütünlüğü için de mümkün WM_COPYDATA ileti ile win 32 yöntemi kullanın. Daha önce bu yöntemi kullandım .Tek örnek bir uygulama oluşturmak için Net 1.1 windows Explorer'da birden fazla dosya açma.
Kaynaklar
Yuva
Özel bir protokol (zor) kullanarak
en hızlı (düşük gecikme süresi) Java v...
Nasıl Windows pip yüklemek için?...
Nasıl iPhone için Windows geliştirme m...
Nasıl jQuery UI iletişim kutusunda Kap...
Visual Studio her zaman Windows 8 Yöne...