AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCPClient: Readln() Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCPClient: Readln() Problem

Ein Thema von Kill0r · begonnen am 25. Jun 2005 · letzter Beitrag vom 26. Jun 2005
 
Kill0r

Registriert seit: 5. Jun 2005
Ort: Zürich
50 Beiträge
 
Delphi 2010 Professional
 
#1

Indy TCPClient: Readln() Problem

  Alt 25. Jun 2005, 20:27
Hi!
Ich hab ein Problem mit der Indy 9 Komponente IdTCPClient.
Ich kann zwar zum Server verbinden und ihm auch Nachrichten schicken, aber mit dem Empfangen gibts Probleme.
Ich hab schon in den anderen Threads geschaut aber so richtig geholfen hat keiner.
Ich lese mit einem Timmer alle 300 Millisekunden die empfangenen Daten aus also mit Readln()
Aber sobald er keine Daten mehr bekommt hängt sich das Programm auf!
Hab schon mal mit try ... except versucht ging auch nicht.
Es gibt ja kein spezielles Event dafür, dass wenn man Daten empfängt irgendwa smachen kann. Ich muss also irgednwie überprüfen, dass wenn er Daten empfängt aber auch nur dann, dass er die ausliest.
Hier mal der Code des Clienten
Delphi-Quellcode:
unit Core;

interface

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

type
  TMain = class(TForm)
    flash: TShockwaveFlash;
    net: TIdTCPClient;
    timer: TTimer;
    Button1: TButton;
    size: TEdit;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure Button1Click(Sender: TObject);
    procedure netDisconnected(Sender: TObject);
    procedure netConnected(Sender: TObject);
    procedure timerTimer(Sender: TObject);
    procedure flashFSCommand(ASender: TObject; const command, args: WideString);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

procedure TMain.FormResize(Sender: TObject);
begin
flash.Width := main.ClientWidth;
flash.Height := main.clientHeight;
end;

procedure TMain.flashFSCommand(ASender: TObject; const command,
  args: WideString);
begin
//if (command = '!connect') then
//begin

//end;
end;

procedure TMain.timerTimer(Sender: TObject);
begin
if (net.Connected) then
  begin
    showmessage(net.ReadLn());
  end;
end;

procedure TMain.netConnected(Sender: TObject);
begin
  timer.Enabled := true;
  showmessage('Verbunden');
end;

procedure TMain.netDisconnected(Sender: TObject);
begin
  timer.enabled := false;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
net.Connect(2000);
end;

end.
Der Server schickt die Daten per Writeln.
Ich hoffe ihr könnt mir helfen
Ich bedanke mich im vorraus
  Mit Zitat antworten Zitat
 


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 06:36 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