Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Named Pipes unter Win XP möglich? (https://www.delphipraxis.net/43450-named-pipes-unter-win-xp-moeglich.html)

Scorpion3000 4. Apr 2005 11:52


Named Pipes unter Win XP möglich?
 
Hallo!

Ich versuche schon seit mehreren Tagen folgendes Problem zu lösen:

Ich habe einen NamedPipeServer mit Windows XP auf dem Rechner A
und eine NamedPipeClient mit Win Xp auf dem Rechner B. Beide sind über
LAN verbunden. Wenn ich jetzt über
Delphi-Quellcode:
   CreateFile(PChar('//RECHNER_A/pipe/test,...'))
vom Client auf die NamedPipe des Servers zugreifen will, bekomm ich den Fehler 123
(ERROR_INVALID_NAME - The filename, directory name, or volume label syntax is incorrect).
Scheitern tuts an "RECHNER_A". Allerdings muss ich den Servernamen hier angeben, um übers
Netzwerk kommunizieren zu können, aber irgendiw funzt des nit (Firewalls sind deaktiviert und
ich kann über den Explorer jeweils auf den anderen Rechner zugreifen, dh. Netzwerk is OK).

Ist es überhaupt möglich beide, also den PipeServer und den Client unter Win Xp laufen zu lassen? Oder muss der Server als OS Windows NT, Win 2000,... haben?

Danke im voraus für eure Antworten.

Mfg Scorpion 3000

generic 4. Apr 2005 12:19

Re: Named Pipes unter Win XP möglich?
 
die unc syntax ist etwas anders denke ich.

für mailslots (broadcasts): \\*\mailslot\slotname

die genaue syntax für pipes weiss ich nicht, aber vieleicht hilft dir das weiter.

öffnen tu ich die slots so:
Delphi-Quellcode:
  hFile := CreateFile(pchar('\\*\mailslot\slotname'),
                      GENERIC_WRITE, FILE_SHARE_READ, nil,
                      OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL,
                      0);

RavenIV 4. Apr 2005 12:21

Re: Named Pipes unter Win XP möglich?
 
servus

winXP ist ein nachfolger von winNT.
daher kann es alles, was winNT auch kann (incl namedPipes).

versuch mal im pipemanem den "/" durch "\" zu ersetzen.
dann könnte es gehen.

gruessle

Scorpion3000 4. Apr 2005 12:51

Re: Named Pipes unter Win XP möglich?
 
Hab mich mit den Schrägstichen vertan hab eh diesen "\".
Wegen dem Betriebssystem: auf der MSDN steht bei CreateNamedPipe, dass nur als Server Win NT, Win 2000, Win 2003 eingesetzt werden kann und Win Xp nur als Client. Dies kommt mir eher komisch vor da ich lokal ohne Probleme auch unterm Xp eine NamedPipe erstellen kann.

Scorpion3000 4. Apr 2005 13:59

Re: Named Pipes unter Win XP möglich?
 
Ok bin etwas weiter gekommen. Bekomm jetzt immer die Fehlermeldung "Access is denied". Kann mir da jemand helfen?

Mephistopheles 5. Apr 2005 11:59

Re: Named Pipes unter Win XP möglich?
 
Zitat:

Zitat von Scorpion3000
Wegen dem Betriebssystem: auf der MSDN steht bei CreateNamedPipe, dass nur als Server Win NT, Win 2000, Win 2003 eingesetzt werden kann und Win Xp nur als Client. Dies kommt mir eher komisch vor da ich lokal ohne Probleme auch unterm Xp eine NamedPipe erstellen kann.

Im Platform SDK steht:
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server.


Könnte allerdings sein, daß es auf Windows XP Home nicht funktioniert.

MosiXXL 9. Apr 2005 10:28

Re: Named Pipes unter Win XP möglich?
 
Grds. kann man nur auf NamedPipeServer zugreifen, welche unter dem selben Benutzeraccount laufen. Es sei denn, das beim Erzeugen der NamedPipe auf dem Server entsprechende Securityeinstellungen mitgegeben wurden. Um zwischen zwei XP Rechner die Kommmunikation über NamedPipe zum Laufen zu bringen , könnte ich mir folgendes vorstellen. Der User auf dem Clientrechner muss den gleichen Name und das gleiche Password haben, wie der User auf dem "Server" (unter dem die Serveranwendung läuft). Wäre schön, mal den kompletten Quelltext vom Erzeugen der NamedPipe zu sehen.

Mephistopheles 9. Apr 2005 10:37

Re: Named Pipes unter Win XP möglich?
 
Stimmt. Komplett vergessen.

Das mit dem gleichen Benutzernamen/Paßwort funktioniert IMO aber nur außerhalb *oder* innerhalb von Domains. Gemischt ging das wohl nicht. Und bei Authentifizierung gegen einen Domainrechner von Windows XP Home aus, wirst du böse scheitern. Das hat Microsoft ausgebaut/entfernt. ;)

Zwischen 2 Rechnern die sich nicht kennnen, sollte immer eine Instanz sein, die beide kennt (kann auch einer der Rechner - oder beide - selber sein). Ab Windows 2000 könnte Kerberos das eventuell erleichtern.

Scorpion3000 11. Apr 2005 11:12

Re: Named Pipes unter Win XP möglich?
 
Hab das Problem schon entdeckt: Hab bei meinen Rechner Zeichen verwendet mit denen es scheinbar nit funzt. Hab beide Rechnernamen geändert und jetzt gehts.

Mfg Scorpion3000


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz