AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke IndyServer auf Android mit mobilen Daten nicht erreichbar
Thema durchsuchen
Ansicht
Themen-Optionen

IndyServer auf Android mit mobilen Daten nicht erreichbar

Ein Thema von AndyBo · begonnen am 4. Aug 2023 · letzter Beitrag vom 8. Aug 2023
Antwort Antwort
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#1

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 5. Aug 2023, 11:42
Danke für die Antworten.
Mit Threads habe ich mich bis jetzt noch nicht beschäftigt. Dies ist auch mein erstes Projekt mit TCP. Da werde ich mal suchen ob ich da schöne, leicht verständliche Anleitung finde.
Ein kleines, eigenständiges Beispiel ist hier:

https://mikejustin.wordpress.com/201...-push-example/

Der Einfachheit halber befinden sich Server und Client in derselben Anwendung. Der Client führt in seinem Thread einfach nur in einer Schleife TCPClient.IOHandler.ReadLn aus und schreibt - falls eine Nachricht eintrifft - deren Text in ein TMemo.

Delphi-Quellcode:
procedure TMyPushClientThread.Execute;
var
  S: string;
begin
  TCPClient.Connect;
 
  while not Terminated do
  begin
    S := TCPClient.IOHandler.ReadLn(IndyTextEncoding_UTF8);
 
    if not TCPClient.IOHandler.ReadLnTimedout then
    begin
      TThread.Queue(nil,
        procedure
        begin
          FLog.Append(S);
        end);
    end;
 
  end;
 
  TCPClient.Disconnect;
end;
Michael Justin
  Mit Zitat antworten Zitat
AndyBo

Registriert seit: 5. Jun 2023
16 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 6. Aug 2023, 10:52
Danke Dir

In diesem Beispiel bekommt der Client Nachrichten vom Server. Wenn ich jetzt versuche von diesem Clienten was an den Server zu schicken, funktioniert das nicht mehr (Die Verbindung besteht bereits). Wie muss ich mir das vorstellen, das umzusetzen? Brauche ich da einen 2. Clienten, oder sogar eine 2. Server/Client-Struktur? Eine, die nur vom Clienten zum Server sendet und die 2., in der der Client nur vom Server empfängt? Oder denke ich da zu kompliziert?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#3

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 6. Aug 2023, 12:37
Wenn ich jetzt versuche von diesem Clienten was an den Server zu schicken, funktioniert das nicht mehr (Die Verbindung besteht bereits). Wie muss ich mir das vorstellen, das umzusetzen?
Das Beispiel zeigt, wie der Server einfach Daten an den Client senden kann. Es fehlt nur eine Kleinigkeit, um über den Client gleichzeitig auch Daten an den Server zu senden: die Erzeugung der Indy TCP Client Instanz muss im Hauptthread stattfinden, z.B. als Feld des Hauptformulars (TServerPushExampleForm), und der TCP Client muss dann über den Konstruktor dem Thread übergeben werden.
Damit ist es möglich, z.B. aus einen Button.OnClick heraus eine Nachricht via TCP Client an den Server zu senden. Der Button sendet dann aus dem Hauptthread, während der TMyPushClientThread weiterhin auf Nachrichten des Servers wartet. Eine Indy TCP Client Instanz erlaubt das gleichzeitige Senden und Empfangen aus verschiedenen Threads (ein Thread je Richtung).
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
AndyBo

Registriert seit: 5. Jun 2023
16 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 6. Aug 2023, 13:28
Ich geb Rückmeldung, wenn ich es ausprobiert habe.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 7. Aug 2023, 09:19
Die Herangehensweise ist ein No-Go. Sinnvoller wäre ein Datenaustausch über einen "zwischengeschalteten" Rest-Server (z.b. EMS).
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
AndyBo

Registriert seit: 5. Jun 2023
16 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 7. Aug 2023, 13:10
Die Herangehensweise ist ein No-Go. Sinnvoller wäre ein Datenaustausch über einen "zwischengeschalteten" Rest-Server (z.b. EMS).
Wieso ist die Herangehensweise ein No-Go wenn ich ein Verständnis dafür bekommen möchte, wie die Indy-Componenten funktionieren und miteinander agieren?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 7. Aug 2023, 13:21
Dann mach das in einem LAN ggf. mit Windows Anwendungen. Mit Mobilgeräten wird es nicht funktionieren. Die erhalten ständig neue IP und unter aktuellen OS sogar zufällig generierte MAC-Adressen. Du brauchst nicht einmal ein physikalisches LAN, sondern kannst das gesamte Verhalten auch mit localhost anschauen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
AndyBo

Registriert seit: 5. Jun 2023
16 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: IndyServer auf Android mit mobilen Daten nicht erreichbar

  Alt 8. Aug 2023, 12:40
... und der TCP Client muss dann über den Konstruktor dem Thread übergeben werden.
Ich bekomme das nicht hin. Ich verstehe noch nicht, wie das mit den Threads funktioniert und wie man die dann anspricht.

Geändert von AndyBo ( 8. Aug 2023 um 13:37 Uhr)
  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 18:15 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-2025 by Thomas Breitkreuz