AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Client-Seitiger Port bei TClientSocket
Thema durchsuchen
Ansicht
Themen-Optionen

Client-Seitiger Port bei TClientSocket

Ein Thema von tgoessi · begonnen am 5. Okt 2006 · letzter Beitrag vom 6. Okt 2006
Antwort Antwort
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#1

Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 10:26
Hallo Zusammen

Wenn ich mit TClientSocket eine Verbindung aufbaue, kann ich zwar den Server-Port angeben, jedoch nicht den client-seitigen Port, über den die Verbindung die lokale Maschine verlässt.
Jedes Mal, wenn ich eine Verbindung öffne, verwendet Windows lokalseitig einen anderen Port.
Speziell mit dem Betrieb einer Firewall können damit Probleme auftreten, da z.B. für das Verlassen eines Netzwerks von innerhalb der Firewall nur bestimmte Ports geöffnet sind.

Gibt es eine Möglichkeit bei TClientSocket beim Öffnen einer Verbindung die lokale Portnummer anzugeben, damit die Verbindungen nur von diesem Port aus geöffnet werden?

Danke und Gruss
Tom
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#2

Re: Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 15:13
Hallo Tom,

für tclientsocket so wie für tserversocket hab ich noch nirgends eine vollständige Dokumentation gesehen. Darum kann ich nicht ausschliessen, dass es so etwas gibt. Gesehen habe ich es noch nicht und es ist auch nicht üblich.

Bei einem Client kannst du nicht wissen, ob das gewünschte Port zur Verfügung steht. Für andere Clients, wie Browser werden auch ganze Portbereiche verwendet und bei Bedarf an der Firewall erlaubt.

Grüsse,
der flossinger
  Mit Zitat antworten Zitat
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 17:17
Hallo

Heisst das im Prinzip auch, dass man als Client immer nur (gleichzeitig) von einem ausgehenden Port eine einzige Verbindung aufbauen kann.
Also wenn ein ClientSocket eine ausgehenden Verbindung auf Port 1005 öffnet, man nicht gleichzeitig eine zweite ClientSocket auf 1005 öffnen kann.

Gruss
Tom
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 17:58
Dies kann man grundsätzlich nicht. Wenn der Port von einem geöffnet wurde (Clientseitig) um eine Verbindung zu einem anderen Gegenüber herzustellen, dann kannst du diesen Port nicht für einen weiteren Socket nutzen um darüber eine Verbindung zu einem anderen herzustellen.
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#5

Re: Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 22:00
Im Allgemeinen ist das so. Wenn man sich dafür interessiert, kann man noch genauer hinsehen. Die Adressierung der Pakte erfolgt über das Socket. Socket bedeutet Anschluss oder Steckdose. Und das Socket setzt sich zusammen aus Adresse und Port. Also beispielsweise '1.2.3.4:99'. Wenn jetzt zwei tclientsockets über das selbe socket adressiert wären, könnte das System nicht entscheiden, an welches der socketobjekte ein Paket gerichtet ist.
Um jetzt ganz genau zu sein, könnte eine Maschine 2 nics besitzen. Gateways sind solche Maschinen. Wenn jede nic eine andere adresse hat, können zwei tclientsockets die selbe portnummer verwenden, wenn sie verschiedene Adressen verwenden. Sie kommunizieren dann doch wieder über zwei verschiedene sockets. Beispielsweise über 1.2.3.4:99 auf der ersten network interface card wird mit dem Firmennetz kommuniziert und über 1.2.3.5:99 auf der zweiten nic wird mit dem Internet kommuniziert.

grüsse,
der flossinger
  Mit Zitat antworten Zitat
DelphiSourcer

Registriert seit: 7. Feb 2005
43 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Client-Seitiger Port bei TClientSocket

  Alt 5. Okt 2006, 22:21
Hallo!

Im Delphi-Treff, einer anderen Delphi Internet-Seite unter Tutorials gibt es ein Handbuch zu ClientSocket und ServerSocket mit Beispielprogramm. Unter Google "Delphi Treff" eingeben, dann nach Suche den ersten Link anklicken-> dort Tutorials-> Web-Tutorials-> WinSocket.

Viel Erfolg wünscht

DelphiSourcer
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#7

Re: Client-Seitiger Port bei TClientSocket

  Alt 6. Okt 2006, 05:17
Das ist aber eine sehr bescheidene Information, was du ein 'Handbuch' nennst. Solche informationsbruchstücke gibt es in rauen Mengen im Netz. Mit ein wenig Erfahrung kann man mehr über die Sockets herausfinden. Was ich in Jahren nicht angetroffen habe, ist eine vollständige Dokumentation.

der Flossinger
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Client-Seitiger Port bei TClientSocket

  Alt 6. Okt 2006, 08:17
Zitat von tgoessi:
Wenn ich mit TClientSocket eine Verbindung aufbaue, kann ich zwar den Server-Port angeben, jedoch nicht den client-seitigen Port, über den die Verbindung die lokale Maschine verlässt.
Jedes Mal, wenn ich eine Verbindung öffne, verwendet Windows lokalseitig einen anderen Port.
Hi tgoessi,

ich war bis heute der Meinung, dass ich beim öffnen einer Clientverbindung auf einen Serverport genau diesen auch benutze. Somit sehe ich das so, dass wenn ich einen Server auf dem Port 1005 connecte der Client diesen auch benutzt.

Wenn ich hier was falsch verstanden hab, sorry.

Gruß oki
  Mit Zitat antworten Zitat
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Client-Seitiger Port bei TClientSocket

  Alt 6. Okt 2006, 08:57
Zitat:
ich war bis heute der Meinung, dass ich beim öffnen einer Clientverbindung auf einen Serverport genau diesen auch benutze. Somit sehe ich das so, dass wenn ich einen Server auf dem Port 1005 connecte der Client diesen auch benutzt.
Soviel ich weiss funktioniert das nur serverseitig so, d.h. mit TServerSocket kann man den Port 1005 abhorchen. Wird beim TClientSocket 1005 eingegeben, erfolgt die Verbindung auf Port 1005 des Servers. Ich weiss aber nicht, wie man definieren kann, auf welchem Port die Verbindung client-seitig verlässt. Offenbar ist dies auch gar nicht möglich, da das OS dies automatisch wählt.

Tom
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Client-Seitiger Port bei TClientSocket

  Alt 6. Okt 2006, 12:51
klar,

aber wenn der Server dann antwortet passiert das doch auf dem Port den der Server definiert. In meinem Firewall kann ich doch die Kommunikation auf den entsprechenden Port eingrenzen und die gegenseitige Kommunikation erfolgt dann auch auf diesem Port. Ich war bis jetzt der Meinung, dass eine antwort eines Servers an einen angemeldeten Client über genau den spezifizierten Port erfolgt und eine Identifikation über die ID des Clients erfolgt. Wie gesagt, dass waren alles meine Annahmen. Nachgelesen habe ich das auch nirgens.

Gruß oki
  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:52 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