AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy10: Neuen Port auf Clientseite ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Indy10: Neuen Port auf Clientseite ermitteln?

Ein Thema von McMorton · begonnen am 7. Jul 2006 · letzter Beitrag vom 9. Jul 2006
Antwort Antwort
McMorton

Registriert seit: 8. Mär 2006
45 Beiträge
 
#1

Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 07:46
Hi.
Ich habe mal wieder eine Frage zu Indy 10
Wenn sich ein Client über einen bestimmten Port mit einem Server verbindet,
dann handelnd die beiden ja automatisch einen neuen Port aus.
Diesen kann man ja beim Server im OnConnect Event so abfragen:

Delphi-Quellcode:
procedure TServer.IndyConnect(aContext: TIdContext);
var
  aPort: Integer;
begin
  //Lies Port, über den sich verbunden wurde
  aPort := aContext.Binding.PeerPort;
end;
Wie kriege ich beim Client den neuen Port raus?
Dort gibt es die TIdContext Klasse nicht.
Das OnConenct Event sieht so aus:
procedure TClient.IndyConnected(Sender: TObject); Ich habe schon alles mögliche probiert, aber egal welches Port-Property ich vom IndyClient auslese, ich lese immer nur den ursprünglichen Port, über den die Verbindung erstellt wurde.
  Mit Zitat antworten Zitat
ThomasGerstner

Registriert seit: 5. Jul 2006
Ort: Rheinstetten
7 Beiträge
 
Delphi XE3 Starter
 
#2

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 07:54
Dein Server macht ein Listen auf dem PORT XXXX, den du vergeben hast.
Der Client meldet sich mit einer PORT-Nummer beim Server an und bekommt von diesem
den nächsten am Server frein PORT zurück.

Ich würde mal vermuten, dass das, was du ausliest schon korrekt ist.
Warum sollte der Client einen anderen PORT zugewiesen bekommen ?
(Vielleicht verstehe ich da ja was falsch)

Gruß
Thomas
Thomas Gerstner
  Mit Zitat antworten Zitat
McMorton

Registriert seit: 8. Mär 2006
45 Beiträge
 
#3

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 08:26
Ich möchte aber den neuen vom Server zugewiesenen Port beim Client wissen.

In etwas so:
Der Server lauscht auf Port 2000
Ein Client sendet eine Verbindungsanfrage an Port 2000
Der Server weißt einen neuen Port für die Kommunikation zu zb. 2001.
Beim Server kann man diesen Port (2001) nun auslesen.
Wie kriege ich beim Client raus, das der neue Port nun 2001 ist?
  Mit Zitat antworten Zitat
Peter Wolf

Registriert seit: 15. Apr 2004
21 Beiträge
 
#4

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 08:33
Hallo McMorton,

übermittle halt einfach die Info vom Server zum Client, die Verbindung steht ja schon.

Grüße
Peter
  Mit Zitat antworten Zitat
ThomasGerstner

Registriert seit: 5. Jul 2006
Ort: Rheinstetten
7 Beiträge
 
Delphi XE3 Starter
 
#5

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 08:45
TCPSender.Socket.Binding.PeerPort liefert bei mir den Port 9999 (Listen) am Server
TCPSender.Socket.Binding.Port liefert den ausgehandelten

Gruß
Thomas
Thomas Gerstner
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 7. Jul 2006, 10:59
und überprüfen kannst du das alles mit einem paketsniffer
da stehen dann alle source und desination ports drin
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
McMorton

Registriert seit: 8. Mär 2006
45 Beiträge
 
#7

Re: Indy10: Neuen Port auf Clientseite ermitteln?

  Alt 9. Jul 2006, 22:26
Vielen Dank

TCPSender.Socket.Binding.PeerPort

Das war genau was ich suchte.

Hab auch gleich ne neue Frage. Habe dafür aber einen neuen Thread aufgemacht
  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 09:01 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