Named pipes

11/01/2009 - 11:46 von Peter Kumpf | Report spam
Hallo.

Habe mir 2 Programme geschrieben (Server/Client), die über "named pipes"
miteinander kommunizieren.

Nachdem die Programme nun so arbeiten, wie das angedacht war, wollte ich
- da ich aus der API-Beschreibung von "DosCreateNPipe" entnommen habe,
dass das nicht nur auf einem Rechner möglich ist, sondern auch im
Netzwerk - den Server und den Client jeweils auf verschiedenen Rechnern
laufen lassen.

Und das klappt bei mir nicht.

Ich habe das so verstanden, dass wenn der Server auf einem anderen
Rechner als der Client làuft, man lediglich beim Öffnen der Pipe den
Server-Rechnernamen vorne anstellen muss.
Also z.B.: die Pipe, die der Server erstellt: "DosCreateNPipe(
"\\pipe\\testpipe", ...
auf der Client-Seite mittels: "DosOpen(
"\\\\RechnerName\\pipe\\testpipe", ...

Ist das falsch ?

Wie gesagt: Benutze ich beim Server, wie beim Client "\\pipe\\testpipe"
und starte beide auf der gleichen Maschine, dann klappt alles.

Ich benutze auf beiden Rechner "eComStation". Einmal die Version 1.2 und
auf dem anderen Rechner die Version 2.0 RC6a.

Es spielt dabei keine Rolle, ob der Server auf Rechner_1 und der Client
auf Rechner_2 làuft oder umgekehrt.
Der Fehlercode von "DosOpen" ist in beiden Fàllen 65.

Weis jemand was "65" bedeutet ? Ich finde diesen Wert in der "DosOpen"
API Beschreibung nicht.
Tippe aber mal schwer auf auf etwas, wie eine "fehlende
Netzwerkfreigabe". Doch wie gibt man eine Pipe als Netzwerkresource frei ???

Gruß, Peter
 

Lesen sie die antworten

#1 Carsten Arnold
12/01/2009 - 10:39 | Warnen spam
Am Sun, 11 Jan 2009 10:46:26 UTC schrieb Peter Kumpf
:

Also z.B.: die Pipe, die der Server erstellt: "DosCreateNPipe(
"\\pipe\\testpipe", ...
auf der Client-Seite mittels: "DosOpen(
"\\\\RechnerName\\pipe\\testpipe", ...

Ist das falsch ?



Nein.

Der Fehlercode von "DosOpen" ist in beiden Fàllen 65.

Weis jemand was "65" bedeutet ? Ich finde diesen Wert in der "DosOpen"



Kommandozeile:
[D:\]help 65

SYS0065: Netzwerkzugriff verweigert.

ERKLÄRUNG: Sie haben versucht, auf eine Ressource zuzugreifen, die
nicht verfügbar ist. Dies kann folgende Gründe haben:
1. Sie haben keine gültige Benutzerberechtigung für den Server,
der die Ressource zur Verfügung stellt.
2. Die Benutzerberechtigung für diesen Server umfaßt nicht die für
den Zugriff auf die Ressource erforderlichen Berechtigungen.
KORREKTUR: Sicherstellen, daß der richtige Name der Ressource
angegeben wird und den Befehl wiederholen. Wird der Zugriff
weiterhin verweigert, ist der zustàndige Netzwerkadministrator
zu benachrichtigen.

Tippe aber mal schwer auf auf etwas, wie eine "fehlende
Netzwerkfreigabe". Doch wie gibt man eine Pipe als Netzwerkresource frei



Hmm, so der Netzwerkspezialist bin ich auch nicht.
Sind auf beiden Rechnern die PeerRequester gestartet?
Anmeldung?
Welche Rechte haben die angemeldeten Benutzer?

Gruß Carsten

Ähnliche fragen