2012-06-08 24 views
5

Benim .NET uygulaması ile adlandırılmış kanal sunucusu oluşturmak, adı "TSPipe" dir. Sonra Not Defteri'ni açın ve dosyayı "\. \ Pipe \ TSPipe" olarak kaydetmeye çalışıyorum. Daha sonra, o boruya not defteri yazdığını okuyabiliyorum.Windows'da Adlandırılmış Boruları Dosya Olarak Kullanabilir miyim?

hala benim kod adlı boru sunucusu için var burada NamedPipeServerStream kolları, ancak iş parçacığı için genel mantığı dışarı çalışıyorum

: Herhangi bir yardım için şimdiden

public void PipeThread() { 
     var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 
     var rule = new PipeAccessRule(sid, PipeAccessRights.ReadWrite, AccessControlType.Allow); 
     var sec = new PipeSecurity(); 

     sec.AddAccessRule(rule); 

     while (continuePipeThread) { 
      pipeStream = new NamedPipeServerStream("TSPipe", PipeDirection.In, 100, PipeTransmissionMode.Byte, PipeOptions.None, 0, 0, sec); 

      Program.Output.PrintLine("Waiting for connection..."); 

      pipeStream.WaitForConnection(); 

      Program.Output.PrintLine("Connected, reading..."); 

      byte[] data = new byte[1024]; 
      int lenRead = 0; 
      lenRead = pipeStream.Read(data, 0, data.Length); 
      string line = System.Text.Encoding.ASCII.GetString(data, 0, lenRead); 

      Program.Output.PrintLine(line); 

      pipeStream.Close(); 
      pipeStream.Dispose(); 
     } 
    } 

Teşekkür, ama sana izin verir önerilerin herhangi biri yardımcı olup olmadığını bilmek!

cevap

2

Sen not defteri adlandırılmış boru yazamıyor. Ben UNC yolu \\\\pipe\TSPipe bunu otomatik olarak düzeltir \\\\.\pipe\TSPipe not defteri yazmaya çalıştığınızda, kodunuzu kullanma. Birkaç başka uygulamayı denedim ve çalışmadılar. Onlar sadece CreateFile içine yazdığınız ismi geçen başka bazı mantık çalıştırmak anlaşılmaktadır.

Ancak sizin boru sunucusuna metni Hello, World! gönderecek echo Hello, Word! > \\\\.\pipe\TSPipe gibi bir şey çalışan.

Ben de, "Windows'ta I Files gibi Named Pipes kullanabilir miyim?" Sorunun cevabını tahmin Bazen.

+0

Tamam, teşekkür ederim. Bu sorumu cevaplıyor. IPC yapmak için başka bir yol bulmak zorunda kalacağım. – Tim

+2

Bu metni gönderecek mi? Benim için çalışmıyor. (Win7, yüksek 'cmd') –

İlgili konular