/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Indy TCP
Fra : Harald


Dato : 10-01-04 21:20

Hej

Nogen der ved hvordan man finder ud af om der er modtaget data i en Indy
TIdTCPClient, jeg har prøvet forskellige Read??? metoder med de hænger alle
sammen uanset hvilken timeout værdi jeg benytter?

Jeg bruger Delphi 7 og Indy 9.00.10

Mvh
HK



 
 
PØLLE (10-01-2004)
Kommentar
Fra : PØLLE


Dato : 10-01-04 22:02

Hej Harald

> TIdTCPClient, jeg har prøvet forskellige Read???

Jeg kender ikke så meget til Indy, men i stedet til Winshoes.

Der er i Winshoes let forståelige eksempler til alle komponenterne.
Her kan du måske finde fiduser, som du kan bruge.

Winshoes kan du hente her
http://www.nevrona.com/Indy/download/Winshoes7.html

PØLLE




Harald (11-01-2004)
Kommentar
Fra : Harald


Dato : 11-01-04 00:20

"PØLLE" <NONAME@ME.DK> skrev i en meddelelse
news:40006863$0$27418$edfadb0f@dread16.news.tele.dk...
> Hej Harald
>
> > TIdTCPClient, jeg har prøvet forskellige Read???
>
> Jeg kender ikke så meget til Indy, men i stedet til Winshoes.
>
> Der er i Winshoes let forståelige eksempler til alle komponenterne.
> Her kan du måske finde fiduser, som du kan bruge.
>
> Winshoes kan du hente her
> http://www.nevrona.com/Indy/download/Winshoes7.html

Winshoes er en meget gammel version, Indy 9.0.14 er den nyeste. Men jeg har
fundet løsningen, efter at have opdateret til 9.0.14 så virker det. Det var
åbenbart en fejl i ReadLn og Timeout, egentlig lidt bekymrende at der kan
være sådan en simpel fejl i version 9.

Mvh
HK



Stig Johansen (11-01-2004)
Kommentar
Fra : Stig Johansen


Dato : 11-01-04 05:22

Harald wrote:

> Det var åbenbart en fejl i ReadLn og Timeout, egentlig lidt bekymrende at
> der kan være sådan en simpel fejl i version 9.

Ja, og derfor foretrækker jeg selv Synapse.
<http://www.ararat.cz/synapse/>
Det er ikke 'visuelle' komponenter, men kvalieten er god.

--
Med venlig hilsen
Stig Johansen

Ulrik Vadstrup (11-01-2004)
Kommentar
Fra : Ulrik Vadstrup


Dato : 11-01-04 18:14

"Harald" <news10@-REMOVE-THIS-kroning.dk> wrote in message
news:40005e5c$0$27428$edfadb0f@dread16.news.tele.dk...
> Hej
>
> Nogen der ved hvordan man finder ud af om der er modtaget data i en Indy
> TIdTCPClient, jeg har prøvet forskellige Read??? metoder med de hænger
alle
> sammen uanset hvilken timeout værdi jeg benytter?
>
> Jeg bruger Delphi 7 og Indy 9.00.10
>
> Mvh
> HK
>
Hej Harald

Jeg havde noget liggende i en text fil, du kan jo se om det er noget du kan
bruge.
Der kører i en tråd, hvilket jo er en gode ide ;)

unit ClientUnit;

interface

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

type
TReadThread = class(TThread)
public
constructor Create(IndyClient: TIdTCPClient);
private
FIndyClient: TIdTCPClient;
FMessage: String;
procedure DisplayString;
protected
procedure Execute; override;
end;

TForm1 = class(TForm)
IdTCPClient1: TIdTCPClient;
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure IdTCPClient1Connected(Sender: TObject);
procedure IdTCPClient1Disconnected(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
tr: TReadThread;
public
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TReadThread }

constructor TReadThread.Create(IndyClient: TIdTCPClient);
begin
FIndyClient := IndyClient;
inherited Create(false);
end;

procedure TReadThread.DisplayString;
begin
Form1.Memo1.Lines.Add(FMessage);
end;

procedure TReadThread.Execute;
begin
while not Terminated and FIndyClient.Connected do
begin
FMessage := FIndyClient.ReadLn('.');
Synchronize(DisplayString);
end;
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host := 'localhost';
IdTCPClient1.Port := 9999;
IdTCPClient1.Connect;
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
Memo1.Lines.Add('[Connected]');
tr := TReadThread.Create(IdTCPClient1);
end;

procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);
begin
if IdTCPClient1.ClosedGracefully then
Memo1.Lines.Add('[Disconnected gracefully]')
else
Memo1.Lines.Add('[Disconnected abruptly]');
tr.Free;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) then
begin
IdTCPClient1.Write(Edit1.Text);
end;
end;

end.






Harald (11-01-2004)
Kommentar
Fra : Harald


Dato : 11-01-04 20:30

"Ulrik Vadstrup" <blackend@FJERNMIGblackend.dk> skrev i en meddelelse
news:bts031$3ee$1@news.cybercity.dk...
> "Harald" <news10@-REMOVE-THIS-kroning.dk> wrote in message
> news:40005e5c$0$27428$edfadb0f@dread16.news.tele.dk...
> > Hej
> >
> > Nogen der ved hvordan man finder ud af om der er modtaget data i en Indy
> > TIdTCPClient, jeg har prøvet forskellige Read??? metoder med de hænger
> alle
> > sammen uanset hvilken timeout værdi jeg benytter?
> >
> > Jeg bruger Delphi 7 og Indy 9.00.10
> >
> > Mvh
> > HK
> >
> Hej Harald
>
> Jeg havde noget liggende i en text fil, du kan jo se om det er noget du
kan
> bruge.
> Der kører i en tråd, hvilket jo er en gode ide ;)

<klip>

Problemet var en fejl i Indy 9.00.10, efter en opdatering til 9.00.14 virker
det.

Mvh
HK



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste