AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Wann und wie lange bleibt eine TidTCPServer-Verbindung offen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wann und wie lange bleibt eine TidTCPServer-Verbindung offen ?

Ein Thema von AnyH · begonnen am 10. Okt 2012 · letzter Beitrag vom 10. Okt 2012
 
AnyH

Registriert seit: 10. Okt 2012
3 Beiträge
 
#1

Wann und wie lange bleibt eine TidTCPServer-Verbindung offen ?

  Alt 10. Okt 2012, 14:28
Hallo,

ich habe eine IOS App als Client und eine Delphianwendung als Server. Die Verbindung haut hin und ich kann auch Daten senden. Dann wird es problematisch ...

Das OnConnect und OnExecute des Servers wird einwandfrei abgearbeitet. Sende ich etwas an den Client im OnExecute, wird es vom Client allerdings nicht registriert. Erst wenn der Server die Verbindung zumacht (Disconnect), wird der Client das Gewahr. Leider ist der Empfangspuffer des Client leer.
Beende ich den Client, bekommt der Server das mit, denn dann wird die OnDisconnect Routine aufgerufen.

Ich dachte, dass die Connection so lange erhalten bleibt, bis sich entweder der Client oder der Server aus der Kommunikation verabschiedet. Es sieht für mich aber so aus, als ob für jedes Verbinden vom Client zum Server ein Connect, Execute und Disconnect gemacht werden muss. Ist das richtig ?

Die von mir gesendeten Daten versende ich mit folgender Befehlssequenz:

Code:
function TForm1.SendResponse (AContext: TIdContext; cResponse: string): boolean;
var
  lines: TStringlist;
  crPos, i: integer;
  line: string;
begin
  lines := TStringlist.Create;
  try
    while length (cResponse) > 0 do begin
      crPos := pos (#13+#10, cResponse);
      if crPos = 0 then begin
        Line     := cResponse;
        cResponse := '';
      end else begin
        Line     := copy (cResponse, 1, crPos-1);
        cResponse := copy (cResponse, crPos+2);
      end;
      Log (C_SENT, format ('[%s]', [line]));
      lines.Add(line);
    end;
    AContext.Connection.Socket.Write (lines, TRUE, TEncoding.ANSI);
    AContext.Connection.Socket.WriteBufferFlush;
  finally
    lines.Free;
  end;
end;
Leider ist der Empfangspuffer des Client immer leer.

Danke,

Andree
  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 14:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz