AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Server und mehrere Clients, Id?
Thema durchsuchen
Ansicht
Themen-Optionen

Server und mehrere Clients, Id?

Ein Thema von schwa226 · begonnen am 23. Jan 2010 · letzter Beitrag vom 24. Jan 2010
Antwort Antwort
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

Server und mehrere Clients, Id?

  Alt 23. Jan 2010, 10:35
Hi,

wie kann ich bei Indy10 beim Server Clients unterscheiden, die Clients z.B. die gleiche IP-Adresse haben?
z.B. Ich starte einmal den Server und zwei mal local den Client. Dann melden sich beide Clients mit 127.0.0.1 an.

Beim Server bekomme ich bei Connect ja das TIdContext vom Clienten.
Im Server läuft für jeden Client ein eigener Thread um Daten abzuarbeiten.
Beim Execute (Server bekommt Data von Client) muss ich dann ja den jeweiligen Client wissen, damit er dann beim Server auf den richtigen Thread zugreift.

Geht sicher einfach, aber beim Ersten mal mit Indy ist es halt nicht so einfach.

Danke!
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Server und mehrere Clients, Id?

  Alt 23. Jan 2010, 10:38
Hi!

Ich kenne mich mit Indy nicht weiter aus, aber vllt. ein allgemeiner Ansatz dazu:
Kannst du nicht jedem Client beim ersten Connect eine ID zuweisen, die der sich dann auch irgendwo zu speichern hat und bei jeder Anfrage wieder mitschickt.

Dann weißt du immer direkt, "ah, da kommt ne Anfrage von Client xyz"



Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Server und mehrere Clients, Id?

  Alt 23. Jan 2010, 11:41
Bei TCP/IP-Verbindungen muss man zusätzlich die Portadresse einbeziehen, dann kann man sie voneinander unterscheiden.
Zitat von rfc2663:
TCP/UDP sessions are uniquely identified by the tuple of (source IP address, source TCP/UDP port, target IP address, target TCP/UDP port).
Beispiel (zwei Verbindungen mit lokalhost)
127.0.0.1:4791 <-> 127.0.0.1:4824
127.0.0.1:5291 <-> 127.0.0.1:4977
fork me on Github
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#4

Re: Server und mehrere Clients, Id?

  Alt 23. Jan 2010, 12:22
Danke!

Sollte dann:
Delphi-Quellcode:
AContext.Binding.PeerPort;
AContext.Binding.PeerIP;
sein!
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#5

Re: Server und mehrere Clients, Id?

  Alt 24. Jan 2010, 01:04
Zitat von sx2008:
Bei TCP/IP-Verbindungen muss man zusätzlich die Portadresse einbeziehen, dann kann man sie voneinander unterscheiden.
Hallo schwa226, das Sockethandle identifiziert am Server jeden Client eindeutig, da braucht man keine Client Ports dazu.

Sollte bei den Indys mit "AContext.Binding.Handle" ermittelt werden können.

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  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 20:55 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