2009-11-17 10 views
17

Yerel IPC için (her ikisi de win-api kullanarak), etkililik-wize, kaynak-wize ya da başka bir şekilde, soket üzerinden adlandırılmış yöneltmeler lehine herhangi bir neden var mıdır, çünkü her ikisi de aynı şekilde davranır (ve muhtemelen benzer bir arabirim tarafından soyutlanmış olması muhtemeldir)), zaten ağ amaçları için zaten soket kullanmak için bir uygulamada?Soketler, Windows'da yerel IPC için adlandırılmış yöneltmelere mi?

En azından adresleme sorununu adlandırabilirim: bağlantı noktası adları, borular için dosya isimlerine karşı yuvalar. Ayrıca, adlandırılmış yöneltmeler (AFAIK) güvenlik duvarını (engelleme/engelle iletişim kutusu) uyarmaz, ancak engellenen uygulamalar yine de yerel olarak soketler üzerinden iletişim kurabilir. Dikkate almak için başka bir şey?

Soket kullanılması durumunda, yerel olarak soket kullanıldığında önerilen tüm winsock ayarları/bayrakları var mı?

cevap

15

Bazı ince farklar: Eğer işleyen bir adaptör yoksa

Yuva yerel IPC için çalışmaz. Çalışan bir adaptör olmadan bir PC'ye sahip olmak ne kadar yaygındır? Biri yazılımımızı bir ağa ya da bir güç kaynağına takılı olmayan bir dizüstü bilgisayardaki bir müşteriye göstermeye çalışırken (bu yüzden işletim sistemi ağ gücünü devre dışı bırakmak için devre dışı bıraktı) ve kablosuz bağdaştırıcı devre dışı bırakıldığında ısırıldım. dizüstü bilgisayar kullanıcısı kablosuz kullanmamıştı). Bir geri döngü bağdaştırıcısı takarak bunu aşabilirsiniz ancak bu ideal değildir. Güvenlik duvarı yazılımı, TCP/IP bağlantılarının kurulmasında sorunlara neden olabilir. Yerel IPC için bir sorun olmamalı, ancak ikna olmadım.

Adlandırılmış borular oluşturmak için gereken ayrıcalıklar veya adlandırılmış yöneltme için yeni örnek oluşturmak amacıyla sorunlarınız olabilir. Örneğin, aynı adlı boruyu kullanarak çok sayıda sunucu çalıştırıyordum (muhtemelen iyi bir fikir değil, fakat bu test içindi) ve bazıları CreateNamedPipe'da başarısız oldu çünkü borunun oluşturulduğu ilk sunucu Yönetici modunda çalışıyordu (çünkü Yönetici modunda Visual Studio) geri kalanı normal UAC seviyesi ile komut satırından başlatıldı.

Rubens tarafından belirtilen makale çoğunlukla bir ağ üzerinden IPC ile ilgili olmakla birlikte, "Yerel olarak adlandırılan boruların çekirdek modunda çalıştığı ve son derece hızlı olduğu" noktasını ortaya koymaktadır.

+7

Windows PC'lerde her zaman bir sanal geri döngü arabirimi yüklüdür. Windows soketlerini kullanmak için PC'de bir ağ bağdaştırıcısına veya sürücünüze sahip olmanıza gerek yoktur. Yerel işlemlerinizi ele almak için 127.0.0.1 IP adresini kullanın. – phord

4

Göz önünde bulundurmak isteyebileceğiniz başka bir çözüm, adlandırılmış bir paylaşılan bellek bölgesidir. Bu biraz iş, çünkü bir akış kontrol protokolü kurmak zorundasın, ama bunu geçmişte hızın en önemli şey olduğu geçmişte başarıyla kullandım.

İlgili konular