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 Pipe wird nach Lesevorgang geschlossen (https://www.delphipraxis.net/186744-pipe-wird-nach-lesevorgang-geschlossen.html)

Neutral General 25. Sep 2015 13:28

Pipe wird nach Lesevorgang geschlossen
 
Hallo,

Ist folgendes Verhalten normal?

Ich erstelle eine Pipe:
Delphi-Quellcode:
pipe := CreateNamedPipe('\\.\pipe\mypipe', PIPE_ACCESS_INBOUND, PIPE_TYPE_MESSAGE or PIPE_WAIT, 2, 4096*1024, 4096*1024, 0, nil);

Ein 2. Prozess öffnet die Pipe per CreateFile, schreibt Daten herein und schließt das Filehandle.

Danach lese ich den Inhalt aus:
Delphi-Quellcode:
var Buff: Array of Byte;
    br: Cardinal;
begin
  SetLength(Buff, 4096*1024);
  ReadFile(pipe, Buff[0], 4096*1024, br, nil);
end;
Das funktioniert soweit, allerdings ist die Pipe danach geschlossen. Ein anderer Prozess kann sie dann nicht mehr öffnen.
Warum ist das so? Ist das normal? Mache ich irgendwas komisch/falsch?

Bambini 25. Sep 2015 14:24

AW: Pipe wird nach Lesevorgang geschlossen
 
Zitat:

Zitat von Neutral General (Beitrag 1316973)
Das funktioniert soweit, allerdings ist die Pipe danach geschlossen. Ein anderer Prozess kann sie dann nicht mehr öffnen.
Warum ist das so? Ist das normal? Mache ich irgendwas komisch/falsch?

Ja das ist normal. Jeder Client bekommt eine eigene Pipe, sonst würde man die Clients mehr unterscheiden können, wenn jeder in die gleiche Pipe schreibt.

Eine Delphi Implemenierung findest du hier: https://micksmix.wordpress.com/2011/...it-for-delphi/


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr.

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