![]() |
Chat über beliebige Ports
Morgen,
wir (2) sind dabei ein komplexes Chat-System zu schreiben. Die Kommunikation über Sockets steht auch schon, trotzdem stelle ich mir seit einigen Tagen eine Frage. Wie ist es möglich, dass der Benutzer des Clients den Port, den er nutzen will, frei wählt und sich über diesen zum Server verbindet? Zur Zeit sind bei uns die Ports noch festgelegt. Beide Programme nutzen die Ports 6711, 6712 und 6713. Aber wenn jemand nur bestimmte Ports freigegeben hat, wie kann er dann den Server erreichen? Und was muss ich tun damit sich die richtigen Sockets miteinander verbinden und es kein großes Durcheinander gibt?? Irgendwie muss es ja gehen, denn bei AIM, ICQ ect. gehts doch auch, oder? Ist es vielleicht möglich, die IE-Proxy Einstellungen zu nutzen? Viele Fragen, ich hoffe ihr versteht mich :lol: Ps.: Falls es wichtig ist, wir haben Delphi 5 und die Indy9-Kompienten zur Verfügung. Gruß Christian |
Re: Chat über beliebige Ports
naja frei wählen ...
angenommen der server kann auf mehreren port's lauschen, dann kann sich der client einen port "aussuchen" bietet der server diese möglichkeit nicht, so kann der client auch nur einen port ansprechen oder aber, beide vereinbaren einen port, d.h. der client gibt den port vor und der sever wartet auf diesem port das setzt aber einen "zwischen server" vorraus und es ist ungeeignet wenn mehrere clients sich einen port aussuchen, logisch ;) |
Re: Chat über beliebige Ports
Der Client wählt einen Zufallsport und verbindet mit dem Server und dessen festen Port. Nun steht eine Socketverbindung in der beide, also der Client und auch der Server Daten in beide Richtungen versenden können. Wenn das Chat-Kommunikations-Protokoll sauber und clever entwicklet wurde, dann kann man über diese eine Verbindung Daten senden und auch lesen in beide Richtungen.
Aus Sicht des Servers ist es egal welchen Port der Client benutzt, denn die Verbindung besteht auch ohne dieses Wissen. Auf ServerSite müssen hauptsächlich nur die FireWalls so konfiguriert werden das sie den Server-Port zugreifbar lassen. Auf Clientsite müssen haupsächlich die Proxies, aber nicht die FireWalls berücksichtigt werden. Bei einem Chat ist es aber üblich das der Chat-Server nur die Verbindungen von einem Client zu anderen Clients ermöglicht. Dazu verwaltet der Server eine Tabelle aller angemeldeten Clients per IP + Port. Diese Informationen werden dann benutzt damit einer der Clients sich mit anderen Clients verbinden kann. Gruß Hagen |
Re: Chat über beliebige Ports
hm. Aber wie funktioniert dann ICQ. Denn der Client nutzt doch die Proxy-Einstellungen vom Internet Explorer
Gruß Christian |
Re: Chat über beliebige Ports
Zitat:
Gruß Christian |
Re: Chat über beliebige Ports
Zitat:
Dieses Vorgehen ist normalerweise nur auf Clientsite notwendig. Zitat:
Das muß dann umkonfiguriert werden, normal ist das aber nicht unbedingt. Mal abgesehen von Firmennetzen die verhindern wollen das die Angestellten surfen können bzw. die nur über HTTP arbeiten dürfen. Ich vermute aber mal das du einen Proxy meinst und eben nicht über diesen Proxy versuchst zu verbinden. In diesem Moment erscheint es so als würde dein Verbindungsaufbau blockiert. Gruß Hagen |
Re: Chat über beliebige Ports
Als flexibles Chatsystem, das möglichst ohne Probleme durch alle Poxies/Fiewalls durchkommen will, bleibt nur HTTP Port 80 übrig. Nur dieser Port ist mit der höchsten Wahrscheinlichkeit durchlässig.
Anbieten tut sich da das SOAP Protokoll per ISAPI.DLL o.ä. In einer solchen Konfiguration wäre der Chat fast immer lauffähig. Allerdings SOAP ist langsam, anfällig, noch nicht so weit verbreitet und es lassen sich nicht mehr alle Möglichkeiten ausschöpfen. Gruß Hagen |
Re: Chat über beliebige Ports
Hi.
Eigentlich hatten wir bis jetzt keine Probleme, aber ein Freund von mir benutzt die Internetverbindungsfreigabe eines anderen PC's um ins Internet zu kommen und bei ihm funktioniert es nicht, ICQ läuft aber. Hast du denn einen Code, der das möglich macht? Gruß Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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