![]() |
Named Pipes (Problem)
Hallo.
Hab grade mal angefangen mit Named Pipes rumzuexperimentieren. Aber irgendwie bin ich noch nich so ganz dahinter gestiegen. Hab bisher ein kleinen Server Prozess und einen passenden Client Prozess gebastelt. Eigentlich soll ein kurzer String vom Server zum Client übertragen werden. Aber leider klappt es nich. Weiß jemand wo der Fehler liegen könnte? Server:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Pipe: THandle; x: Cardinal; const s: String = 'Oi! the Diddy.'; begin Pipe := CreateNamedPipe('\\.\pipe\{75263353-83E2-44EA-B988-7213D61274E5}', PIPE_ACCESS_OUTBOUND, PIPE_TYPE_BYTE or PIPE_READMODE_BYTE or PIPE_WAIT, 1, 4096, 4096, NMPWAIT_USE_DEFAULT_WAIT, nil); if Pipe = INVALID_HANDLE_VALUE then begin ShowMessage('Faild to create the pipe :-('); Exit; end; ConnectNamedPipe(Pipe, nil); WriteFile(Pipe, PAnsiChar(s)^, Length(s), x, nil); if x <> Length(s) then begin ShowMessage('Faild to write data to pipe :-('); Exit; end; end; Client:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Handle: THandle; b: PAnsiChar; x: Cardinal; begin Handle := CreateFile('\\.\pipe\{75263353-83E2-44EA-B988-7213D61274E5}', GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0); if Handle = INVALID_HANDLE_VALUE then begin ShowMessage('Faild to call the pipe :-('); Exit; end; b := allocMem(4096); ReadFile(Handle, b, 4096, x, nil); ShowMessage(IntToStr(x) + #10 + '"' + b + '"'); end; // Edit Achso: Das Problem is, der String der beim Client ankommt is 0 Zeichen lang... |
Re: Named Pipes (Problem)
Hi,
ohne jetzt Dein Beispiel genauer zu betrachten, schau Dir mal meine alten (und nicht die besten :mrgreen:) Named Pipe Komponenten an. Die sind im Source Code hier: Code: ![]() Beispiel: ![]() Hoffentlich hilft Dir das weiter. ...:cat:... |
Re: Named Pipes (Problem)
Danke. Aber geht das für den Anfang nich kürzer ???
//EDIT Könnte natürlich einfach deine Componenten übernehmen, aber das is ja witzlos. Und bei dem langen Quell-Text durchzusteigen is etwas schwierig, wenn man noch nich mit Pips gearbeitet hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz