PIPE LAN



  • Hallo Leute,
    kann man einen Pipeserver auf einem Rechner von irgendwo aus dem LAN mit Pipeclient kontaktieren ? Sofern Server und Client auf demselben Rechner laufen, scheint dies ja soweit ohne Probleme zu funktionieren, wenn beim Client der Networkname des Rechners bekannt ist:

    LPTSTR lpszPipename = TEXT("\\\PCXYZ\\pipe\\Testpipe ");

    Sobald aber Client und Server auf zwei verschiedenen Rechnern im selben LAN laufen, gibt es beim Client den GLE 53 (The network path was not found.).
    In der MSDN steht dazu:
    If the client and server processes were on separate computers, "." would be replaced with the network name of the computer that runs the server process.

    Kann mir jemand sagen, was ich falsch mache bzw. muss ich noch irgendetwas auf dem Server-Rechner freigeben ?


  • Mod

    Das sollte gehen. Vorrausgesetzt Named-Pipes ist auch in der Firewall nicht blockiert.



  • In dem LAN Netzwerk gibt es keine Firewall bzw. die Windows Firewall ist aus.
    Ich habe allerdings keinen Datei&Druckerfreigabe-Client installiert. Gibt es vielleicht irgendein Diagnosetool – so in der Art von "PING" ?


  • Mod



  • Hallo Martin,
    danke für den Hinweis und den Link – leider habe ich es nicht hinbekommen, eine PIPE- Verbindung über das LAN zwischen zwei Rechnern zu etablieren. Möglicherweise muss man ja die PIPE irgendwie freigeben (so ähnlich wie bei der Dateifreigabe). Diverse Forenbeiträge in anderen Foren deuten aber darauf hin, dass PIPES nur für lokale Prozesse funktionieren. Vermutlich handelt es sich bei einem PIPE um eine virtuelle Datei, die nur auf dem lokalen Rechner verfügbar ist.
    Ich hatte gedacht, dass PIPES eine Alternative zur Socketverbindung darstellen könnten – dies scheint aber ein Irrtum zu sein.


  • Mod

    Pipes sind eine Alternative.
    Ich benutze ehr Named Pipes als Sockets.

    Man muss nichts freigegeben. Du musst nur darauf achten, dass auch die Rechte richtig gesetzt werden.
    Ich vermute mal Du den Access descriptor nicht korrekt gesetzt.

    Hier ist ein fertiges Beispiel:
    http://support.microsoft.com/kb/813414/en-us

    Und lies mal:
    http://blog.m-ri.de/index.php/2009/12/08/windows-integrity-control-schreibzugriff-auf-eine-named-pipe-eines-services-ueber-anonymen-zugriff-auf-vista-windows-2008-server-und-windows-7/



  • @Martin – vielen Dank für den Link zu Deinem interessanten Blog. Ich habe mal den von Dir entsprechend veränderten Code auf einem XP SP3 Rechner im Admin-modus als „SERVER“ getestet. Dieser Rechner ist Bestandteil eines größeren LAN Netzwerkes, zu dem auch andere Rechner gehören. Von einem anderen Win7 Rechner aus habe ich dann versucht, als Client mit diesem Server eine Verbindung aufzubauen. Dies hat leider nicht funktioniert. Die Inhalte dieses Threads:
    https://groups.google.com/forum/#!topic/microsoft.public.de.vc/O-IFBZmbiqs
    sind mir auch noch weitgehend neu – ich werde mir das erst etwas genauer anschauen müssen.
    Irgendetwas muss ja die Pipeverbindung über das Netzwerk vermitteln. Vermutlich gibt es dafür einen Dienst, der mit irgendeinem Treiber kommuniziert. Wahrscheinlich entpuppt sich die „Pipe over Lan“ schlussendlich als eine verkappte Socket Verbindung – zumindest vom Konzept her.
    MfG


Log in to reply