AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dialog mit einem Server über Indy TCP
Thema durchsuchen
Ansicht
Themen-Optionen

Dialog mit einem Server über Indy TCP

Ein Thema von endeffects · begonnen am 27. Jun 2004 · letzter Beitrag vom 29. Jun 2004
Antwort Antwort
Seite 2 von 2     12   
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 12:55
@Stevie
Zitat:
Ja, bei ner Thread-Version sind so Schleifen natürlich Mist, ganz klar!
wieso ??
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 12:59
Warum sollte ich ne Schleife machen, die dauernd Zeilen liest, bis nen TimeOut kommt und kein Text gelesen wurde, wenn ich das einfach im OnRead-Event abhandeln könnte? Nur'n Beispiel...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#13

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 13:01
nunja, also ich halte die Seite für sehr unübersichtlich,
vielleicht seh ich auch nur den wald vor lauter bäumen nicht,
man weiß es nicht. die besagte demo aus der sammlung für indy9
(/BasicClientServer/Client/) funktioniert bei mir grundlegend auch,
allerdings ist es z.B. nicht möglich zu google.com auf dem port 80
zu verbinden und dann mit writeln() einen GET Befehl senden.
alldieweil die anweisungen nach dem try connect nicht ausgeführt werden
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#14

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 13:14
Zitat:
Warum sollte ich ne Schleife machen, die dauernd Zeilen liest, bis nen TimeOut kommt und kein Text gelesen wurde, wenn ich das einfach im OnRead-Event abhandeln könnte? Nur'n Beispiel...
ich sprech vom client.. und da der kein onread hat nehm ich mir nen eigenen thread, mach ne endlos schleife rein und lese OHNE timeout via readln..
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#15

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 13:17
Zitat von supermuckl:
ich sprech vom client.. und da der kein onread hat nehm ich mir nen eigenen thread, mach ne endlos schleife rein und lese OHNE timeout via readln..
Sch**ß!!! Ich war schon wieder bei den Sockets, hast recht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 13:23
Hab mal kurz was zusammengefrickelt...
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, StdCtrls;

type
  TForm1 = class(TForm)
    IdTCPClient: TIdTCPClient;
    lbCommunication: TListBox;
    btnConnect: TButton;
    btnDisconnect: TButton;
    edtHost: TEdit;
    edtPort: TEdit;
    Memo1: TMemo;
    Timer: TTimer;
    procedure btnConnectClick(Sender: TObject);
    procedure IdTCPClientConnected(Sender: TObject);
    procedure IdTCPClientDisconnected(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnConnectClick(Sender: TObject);
begin
  lbCommunication.Items.Clear;
  with IdTCPClient do
    begin
      Host := edtHost.Text;
      Port := StrToint(edtPort.Text);
      try
        Connect; // add a timeout here if you wish, eg: Connect(3000) = timeout after 3 seconds.
        WriteLn('GET / HTTP/1.0'+#13#10);
      except
        on E : Exception do
// LockControls(True);
          ShowMessage(E.Message);
      end;
    end;
end;

procedure TForm1.IdTCPClientConnected(Sender: TObject);
begin
  btnConnect.Enabled := false;
  btnDisconnect.Enabled := true;
  Timer.Enabled := True;
end;

procedure TForm1.IdTCPClientDisconnected(Sender: TObject);
begin
  btnConnect.Enabled := true;
  btnDisconnect.Enabled := false;
  Timer.Enabled := False;
end;

procedure TForm1.TimerTimer(Sender: TObject);
var
  s: string;
begin
  s := IdTCPClient.ReadLn(#$A, 5);
  if s <> 'then
    Memo1.Lines.Add(s);
end;

end.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#17

Re: Dialog mit einem Server über Indy TCP

  Alt 28. Jun 2004, 13:36
hmm ich kann nicht nachvollziehen welchen unterschied
es machen sollte wenn man sich über tcp nun zu einem server
verbindet, egal welchen dienst er auf dem entsprechenden port
laufen hat, dazu ist doch die besagte IdTCPClient da,
die meisten anderen indy komponenten sind doch lediglich
eine abwandlung dieser, in dem sourcecode meines
ersten postings hat das doch auch geklappt
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#18

Re: Dialog mit einem Server über Indy TCP

  Alt 29. Jun 2004, 10:18
oh danke für Eure Hilfe und den Beispielcode =)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:13 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