AGB  ·  Datenschutz  ·  Impressum  







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

Indy - Demo Chat

Ein Thema von HDieterH · begonnen am 26. Jan 2004 · letzter Beitrag vom 28. Jan 2004
Antwort Antwort
HDieterH

Registriert seit: 26. Jan 2004
4 Beiträge
 
#1

Indy - Demo Chat

  Alt 26. Jan 2004, 22:54
Hallo zusammmen,

leider habe ich vergebens gesucht und entschuldige mich schon jetzt für die Frage, aber leider konnte ich keine Antwort finden, die mir weitergeholfen hätte.

Es geht um das ReadLn des Clients .. wenn ich keine Strings vom Server bekomme hängt der Client und ich kann dann nur noch warten bis ich a. schwarz bin. b. mit dem Server eine Nachricht schicke der c. mit dem Server den Client abschiesse
Der Befehl an sich Msg := IdTCPClient1.ReadLn(#$0A , 250, -1);
sollte eigentlich 250 mS warten und dann die Procedure meines Timers durchlaufen. Tut er aber nicht wenn vom Server nichts gesendet wird.
Mein TimerInterval steht auf 500mS
Mein IdTCPClient.readTimeOut steht auch auf 250 mS

Kann mir bitte einer Helfen, da ich eigentlich nicht diesen DemoChat brauche, aber schon gern die Indy Komponenten benutzen würde.

MFG, Dieter
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#2

Re: Indy - Demo Chat

  Alt 26. Jan 2004, 23:07
ein bischen mehr code wäre von Vorteil!

synonym
  Mit Zitat antworten Zitat
HDieterH

Registriert seit: 26. Jan 2004
4 Beiträge
 
#3

Re: Indy - Demo Chat

  Alt 26. Jan 2004, 23:13
Zitat von Synonym:
ein bischen mehr code wäre von Vorteil!

synonym
Hallo, kann ich machen ... nur dachte ich schon, dass dieses ChatDemo jeder kennt

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Com,
  Msg : String;
begin

  if not IdTcpClient1.Connected then
    exit;

{ Wenn hier vom Server kein String kommt, dann kommt der nie über diese Zeile }  
Msg := IdTCPClient1.ReadLn(#$0A , 250, -1);
{ also, hier hin :-( }

  if Msg <> 'then
    if Msg[1] <> '@then
      begin
      { Not a system command }
        memLines.Lines.Add(Msg);
      end
    else
      begin
      { System command }
        Com := UpperCase(Trim(Copy(Msg, 2, Pos(':', Msg) -2)));
        Msg := UpperCase(Trim(Copy(Msg, Pos(':', Msg) +1, Length(Msg))));
        if Com = 'CLIENTSthen
          lbClients.Items.CommaText := Msg;
      end;

end;
reicht das fürs erste ?

Schon mal Danke für das Interesse, Dieter

[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#4

Re: Indy - Demo Chat

  Alt 26. Jan 2004, 23:20
vielleicht überschneiden sich die zeiten...
und bevor readln ausgeführt wird versucht der timer wieder alles neu!

synonym
  Mit Zitat antworten Zitat
HDieterH

Registriert seit: 26. Jan 2004
4 Beiträge
 
#5

Re: Indy - Demo Chat

  Alt 26. Jan 2004, 23:27
Zitat von Synonym:
vielleicht überschneiden sich die zeiten...
und bevor readln ausgeführt wird versucht der timer wieder alles neu!

synonym
Leider nein, ich habe das ganze mal in ein OnClick Event von einem Button ausgeführt, und auch dort bleibt er hängen wenn von Server nichts gesendet wird .

Auch habe ich schon aus den Indy/Misc die Komponente IdAntiFreeze ausprobiert. Das geht zwar dann mit dem senden aus dem Client heraus, aber:
1. Kann ich nicht mehr mein Fenster verschieben oder irgendwas andreres selektieren
2. nach dem beenden, was auch nur über den Server klappt mit ( client abschiessen ) kommen 1000 meldungen, dass der Client erfolgreich beendet wurde.
Also kein Ergebnis mit dem ich zufieden sein könnte
MFG, Dieter
  Mit Zitat antworten Zitat
EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#6

Re: Indy - Demo Chat

  Alt 28. Jan 2004, 18:32
Hallo!

Das Problem habe ich auch mit Delphi 7 (mit Delphi 6 gibt es keine Probleme). Es ist scheinbar ein Fehler in der Komponente oder so was.

Wenn du nach Beiträgen mit meinem Namen suchst, dann dürftest du den Thread finden.

Ich selbst habe eine Lösung mit Hilfe des IdTCPDemos (bei den Indy Demos dabei) gefunden. ReadBuffer funktioniert nämlich.

mfg,
EConvertError
Andreas N.
  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:23 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