AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Named Pipes (Problem)

Ein Thema von LoRd-MuldeR · begonnen am 21. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#1

Named Pipes (Problem)

  Alt 21. Okt 2005, 16:10
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...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Named Pipes (Problem)

  Alt 21. Okt 2005, 16:12
Hi,

ohne jetzt Dein Beispiel genauer zu betrachten, schau Dir mal meine alten (und nicht die besten ) Named Pipe Komponenten an. Die sind im Source Code hier:

Code: http://www.delphipraxis.net/internal...?p=36961#36961
Beispiel: http://www.delphipraxis.net/internal...?p=37034#37034

Hoffentlich hilft Dir das weiter.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#3

Re: Named Pipes (Problem)

  Alt 21. Okt 2005, 16:14
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 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