2012-06-08 13 views
5

मैं अपने .NET ऐप के साथ एक नामित पाइप सर्वर बनाता हूं, और इसका नाम "TSPipe" है। मैं फिर नोटपैड खोलता हूं और फ़ाइल को "\। \ पाइप \ TSPipe" में सहेजने का प्रयास करता हूं। मैं फिर उस पाइप को नोटपैड लिखने में सक्षम होना चाहता हूं।विंडोज़ पर, क्या मैं नामांकित पाइप्स फ़ाइलों के रूप में उपयोग कर सकता हूं?

मैं अभी भी धागा कि NamedPipeServerStream संभालती है, लेकिन यहाँ नामित पाइप सर्वर के लिए मेरे कोड है के लिए सामान्य तर्क बाहर काम कर रहा हूँ: किसी भी मदद के लिए अग्रिम में

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(); 
     } 
    } 

धन्यवाद, लेकिन मैं आपको सूचित करेंगे पता है कि कोई सुझाव मदद करता है!

उत्तर

2

आप नोटपैड से नामित पाइप पर नहीं लिख सकते हैं। अपने कोड का उपयोग करते हुए, जब मैं \\\\.\pipe\TSPipe को लिखने का प्रयास करता हूं तो नोटपैड ऑटो-यूएनसी पथ \\\\pipe\TSPipe पर स्वत: सुधार करता है। मैंने कुछ अन्य अनुप्रयोगों की कोशिश की और वे या तो काम नहीं किया। ऐसा प्रतीत होता है कि वे CreateFile में टाइप किए गए नाम को पार करने के अलावा कुछ तर्क चलाते हैं।

हालांकि echo Hello, Word! > \\\\.\pipe\TSPipe जैसे कुछ चलाना आपके पाइप सर्वर पर Hello, World! टेक्स्ट भेज देगा।

तो मुझे लगता है कि "विंडोज़ पर सवाल का जवाब है, क्या मैं नामित पाइप्स फ़ाइलों के रूप में उपयोग कर सकता हूं?" कभी कभी है।

+0

ठीक है, धन्यवाद। यह मेरे प्रश्न का उत्तर देता है। मुझे लगता है मुझे आईपीसी करने का दूसरा रास्ता खोजना होगा। – Tim

+2

क्या यह वह पाठ भेजेगा? यह मेरे लिए काम नहीं करता है। (विन 7, ऊंचा 'cmd') –

संबंधित मुद्दे