AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi INDY TCP/IP-Server Commands
Thema durchsuchen
Ansicht
Themen-Optionen

INDY TCP/IP-Server Commands

Ein Thema von Hanswurst · begonnen am 15. Jun 2003 · letzter Beitrag vom 20. Jun 2003
Antwort Antwort
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#1

INDY TCP/IP-Server Commands

  Alt 15. Jun 2003, 17:23
Moin Leutz
ich bin grade dabei , ein Serverproggi mit den INDYs (TCP/IP-Server) zu schreiben , ja den Client hab ich schon fertig , der auf Commands , die der Client schickt , antwortet ..
beim Client gibts ja SendCMD ..
aber wie kann man beim Server festlegen , was er bei welchen Commands macht ??

THX 4 Reply

Bis denn
CU
  Mit Zitat antworten Zitat
Biggs

Registriert seit: 14. Apr 2003
2 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 15. Jun 2003, 22:22
Am einfachsten geht das mit einem TIdCommandHandler.

Diese Collection ist Bestandteil der Properties von TIdTCPServer.

Einfach soviele Commandhandler dazufügen, wie man braucht und dann noch die entspr. Parameter der Handler anpassen (Trennzeichen, Command etc.)
und die entspr. Methods mit den Antworten füllen und das wars dann schon.

Henri
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 16. Jun 2003, 09:32
Namd Leutz
den CommandHandler hab ich gefunden , blick da aber net so durch ..
ich hab schon gegooglet und in der Hilfe gegückt , hab aber nix gefunden ..

könnteste mir da bitte maln Beispiel zeigen ??

THX

Bis denn
CU
  Mit Zitat antworten Zitat
Mat

Registriert seit: 27. Mai 2003
Ort: Hönow
104 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 16. Jun 2003, 10:14
klick mal vor dem TidTCPServer auf das Plus-Zeichen


mat
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 16. Jun 2003, 10:39
Namd Leutz
@Mad
THX habs gefunden ..
es funzt ..
danke ..

nur noch 1 Frage :

ich habn Proggi zum Datenaustausch mit TCP/IP geschrieben ..
und im Client hat man dann 2 edit-Felder , in denen man die Quell- und die Zieldatei angibt ..
beim Client hab ich nen button mit OnClick und ..
TCPClient.SendCmd('Download' + (edit2.Text)); also.. der Client shickt dem Server , dass er eine Datei downloaden will
(SendCMD('Download' ..))
und direkt noch im Command , welche Datei es sein soll
(+ (edit2.text))

nur wie sag ich dem Server , dass er die Datei , die im edit2.text beim Client steht , zum CLient schickt ??

das schicken mach ich mit sendstream bzw writestream , aber mein Problem is , wie sag ich dem CommandHandler , dass er die Datei , die ja sogesehen eine Variable is (edit2.text), schicken soll ??

Bis denn
CU
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 16. Jun 2003, 12:15
kanna da ??
  Mit Zitat antworten Zitat
Biggs

Registriert seit: 14. Apr 2003
2 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 20. Jun 2003, 01:55
Also, sagen wir mal du hast nen Commandhandler gemacht der auf das Kommando download reagiert, hast als CmdDelimiter ein Leerzeichen genommen und der Client sendet :

SendCMD('Download ' + edit1.text)

Beim server ergibt das den folgenden Event :

procedure TfrmMain.IdTCPServerDownloadCommand(ASender: TIdCommand);
var
cFileName: String;
fStream: TFileStream;
begin
cFileName := ASender.Params[0];

Und jetzt hast du den Filenamen, den der Client angefordert hat.
Alle Parameter, die hinter dem CmdLimiter folgen, werden als
Params[0]...Params[n] angesehen, je nachdem, wieviele Parameter du dem Command hast folgen lassen, das lässt sich mit Params.Count feststellen.

Und jetzt brauchst du ja nur die Datei zu senden, z.B. so :

fStream := TFileStream.Create(cFileName,fmOpenRead + fmShareDenyNone);
ASender.Thread.Connection.OpenWriteBuffer;
ASender.Thread.Connection.WriteStream(fStream);
ASender.Thread.Connection.CloseWriteBuffer;

HTH

Henri
  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 07:46 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