AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdTCPConnection. ReadSmallInt wie einen TimeOut realisieren
Thema durchsuchen
Ansicht
Themen-Optionen

TIdTCPConnection. ReadSmallInt wie einen TimeOut realisieren

Ein Thema von DataCool · begonnen am 17. Sep 2003 · letzter Beitrag vom 18. Sep 2003
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

TIdTCPConnection. ReadSmallInt wie einen TimeOut realisieren

  Alt 17. Sep 2003, 11:51
Hi Leute,

in der letzten Zeit brauch ich echt oft Hilfe , aber bisher habe Ihr mir immer weiter geholfen, erstmal danke danke danke

Jetzt konnte ich mein Problem mit der CPU-Last(manchmal auf 98%) soweit fixen, das nur ein Fehler übrig ist.

Ich übertrage mit einen IdTCPServer Live-Bilder zu einen Client !
Damit die Übertragung schneller ist habe ich mir gedacht ich mache nur einmal die Connection vom Client zum Server auf und kommuniziere innerhalb dieser Connection mit einem eigenen Protokoll.
Die Befehl-Kette läuft in etwa so ab :

1. client --> Server : will bild haben
2. Server --> Client : Bildgrösse xxxx Bytes (mit WriteCardinal)
3. Server --> Client : Bildstream (WriteStream)
4. Client --> Server : Bild ok, Fehler (ReadSmallInt 0,1)

wenn bild ok gehe zu 1, ansonsten gehe zu 2.

Funktioniert auch wunderbar, nur mein Problem ist das ich jetzt festgestellt habe, das ab und zu der Client aus anderen Programm technischen Problemen abstürzt.

Wenn dies geschieht und ich gerade im Server-Thread auf die Bildbestätigung warte(ReadSmallInt), dann kann ich 100 Jahre oder länger warten

Würde ich das ganze mit Readln machen, hätte ich einen Timeout beim Lesen. So könnte ich mein Problem lösen, dabei ist nur das Problem das beide Programme Client und Server schon produktiv online sind, und ich auch bei gleichzeitigem update nicht garantieren kann, das jeder Kunde sofort die aktuelle software benutzt.

Deshalb : Gibt es eine Möglichkeit Readsmallint mit einem Timeout zu verwenden ?

Danke Data

[edit=sakura]Leerzeichen in Überrschrift eingefügt. Mfg, sakura[/edit]
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: TIdTCPConnection. ReadSmallInt wie einen TimeOut realisi

  Alt 18. Sep 2003, 08:57
Ich hoffe, ich hab dich jetzt richtig verstanden....
Versuch es doch so:
i := StrToInt(AThread.Connection.ReadLn(#$A, 1000)); // i: SmallInt; MfG
Stevie
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: TIdTCPConnection. ReadSmallInt wie einen TimeOut realisi

  Alt 18. Sep 2003, 11:28
Hi Stevie,

die Lösung die Du mir geschrieben hast ist mir bekannt

Diese kann ich aber nicht ohne weiteres anwenden.

Der Server ließt im Moment mit :
i := AThread.connection.readSmallInt;

Der Client schreibt mit :
AThread.connection.writeSmallint;

Wenn ich jetzt beim Server einfach Readln verwende ist der Server nicht kombatibel zum Client, d.h. ich müßte Server und Client ändern.
Das wäre ja normalerweise auch kein Thema, aber Server und Client sind bei nmehreren Kunden schon produktiv online, wenn ich jetzt ein Update von Client u. Server hochlade, dauerd es min. 2 Tage bis alle sich den neusten Stand gezogen haben.

Deshalb suche ich um die Kombatiblität zu sichern einen Timeout-Lösung in Verbindung mit readSmallInt zu finden.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: TIdTCPConnection. ReadSmallInt wie einen TimeOut realisi

  Alt 18. Sep 2003, 11:59
Hi Data,

versuch doch mal das hier:
AThread.Connection.ReadTimeout := 5000 // DefaultWert: 0
Stefan
  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 12:49 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