AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Verbindung über Sockets ohne freigegebenen Port...
Thema durchsuchen
Ansicht
Themen-Optionen

Verbindung über Sockets ohne freigegebenen Port...

Ein Thema von DjSp4rkY · begonnen am 28. Jan 2010 · letzter Beitrag vom 1. Feb 2010
Antwort Antwort
DjSp4rkY

Registriert seit: 2. Mai 2009
17 Beiträge
 
#1

Verbindung über Sockets ohne freigegebenen Port...

  Alt 28. Jan 2010, 22:35
Hey liebe DPler,

ich arbeite gerade an nem eigenen Chatprogramm, dass über internet funktioniert.

ich benutze dafür die sockets von delphi also das server- und clientsocket.


verbindungen im allgemeinen bekomme ich auch zu stande, chatten ist auch alles möglich, jetzt das große aber:
aber nur, wenn ich und mein chatpartner einen port im router freigegeben haben.

durch zufall konnten ein par kollegen einen port freigegeben bzw hatten schon einen freigegeben

ich möchte mein chatprogramm allerdings auch nutzen, mit leuten die keinen port freigegeben haben

ich habe schon gegoogelt, ob es einen oder mehrere ports in JEDEM router gibt, die man nutzen könnte
immerhin benötigt icq auch keinen extra freien port im router...


meine frage nun also:
ist es möglich über internet mit den sockets zu chatten, ohne dass ein port im router freigegeben sein muss?
wenn ja, wie bekomme ich sowas zu stande?




hoffentlich kann mir jemand weiterhelfen, habe schon recht lange gegoogelt ohne erfolg :/



gruß de Schparkie
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 28. Jan 2010, 22:40
Hallo DjSp4rkY,

nunja dein Problem ist, das wenn eines deiner Chatpakete beim Router ankommt dieser erstmal wissen muss wohin damit und es dann im Zweifelsfall abschmettert. ICQ, AIM, etc. verbinden erst auf einen Server, der dann die Kommunikation zwischen den Clients managed. Denn ausgehende Verbindungen, wenn nicht explizit verboten gehen eigentlich immer.

Hoffe geholfen zu haben,
Freddy
Frederic H.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 28. Jan 2010, 23:20
Du schreibst das beide einen Port offen haben müssen. Das lässt vermuten das auf beiden Seiten ein ServerSocket verwendet wird. Aber das ist gar nicht notwendig. Es genügt wenn eine Seite einen Server anbietet und die andere Seite zu diesem verbindet. Wenn die Verbindung dann steht kann auch der Server Daten zum Client schicken. Es ist also nicht notwendig (so wie du es vermutlich bisher hast) das 2 Verbindungen aufgebaut werden (jeweils vom Client zum Server des Anderen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DjSp4rkY

Registriert seit: 2. Mai 2009
17 Beiträge
 
#4

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 28. Jan 2010, 23:27
Zitat von SirThornberry:
Du schreibst das beide einen Port offen haben müssen. Das lässt vermuten das auf beiden Seiten ein ServerSocket verwendet wird. Aber das ist gar nicht notwendig. Es genügt wenn eine Seite einen Server anbietet und die andere Seite zu diesem verbindet. Wenn die Verbindung dann steht kann auch der Server Daten zum Client schicken. Es ist also nicht notwendig (so wie du es vermutlich bisher hast) das 2 Verbindungen aufgebaut werden (jeweils vom Client zum Server des Anderen)
das heisst dann also, dass im grunde nur die person, die als server fungiert, einen port freigegeben haben muss

im grunde ok, NUR:
wenn ich aber allen leuten das gleiche programm schicke, fungieren letzten endes auch alle als server
=> schlußfolgernd bräuchte dann doch wieder jeder einen freien port, oder vertu ich mich da?


gruß
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#5

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 28. Jan 2010, 23:37
Zitat:
im grunde ok, NUR:
wenn ich aber allen leuten das gleiche programm schicke, fungieren letzten endes auch alle als server
=> schlußfolgernd bräuchte dann doch wieder jeder einen freien port, oder vertu ich mich da?
Nein, nicht wirklich.
Eine direkte kommunikation von Client1 zu Client2 ist so natürlich nicht möglich.
Ich gehe davon aus das man auch untereinander kommunizieren soll.
Daher muss der Server das ganze managen und entsprechend so programmiert werden,
das die Nachrichten an den empfänger weiter geleitet werden.

Gruß
Frank
  Mit Zitat antworten Zitat
DjSp4rkY

Registriert seit: 2. Mai 2009
17 Beiträge
 
#6

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 29. Jan 2010, 00:03
Zitat von Computerbabalulu:
Zitat:
im grunde ok, NUR:
wenn ich aber allen leuten das gleiche programm schicke, fungieren letzten endes auch alle als server
=> schlußfolgernd bräuchte dann doch wieder jeder einen freien port, oder vertu ich mich da?
Nein, nicht wirklich.
Eine direkte kommunikation von Client1 zu Client2 ist so natürlich nicht möglich.
Ich gehe davon aus das man auch untereinander kommunizieren soll.
Daher muss der Server das ganze managen und entsprechend so programmiert werden,
das die Nachrichten an den empfänger weiter geleitet werden.

Gruß
also man soll eigentlich NUR untereinander kommunizieren, also eine direkte verbindung von 1 person zur anderen

ich weiss ehrlich gesagt nich, wie ich es schaffen soll, dass der server die funktionen eines clients übernimmt
  Mit Zitat antworten Zitat
fishly

Registriert seit: 30. Okt 2008
31 Beiträge
 
Delphi 5 Standard
 
#7

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 29. Jan 2010, 06:11
Also ich hab sowas auch schon mal programmiert. Und zwar folgendermaßen:
Du baust in dein Chatprogramm beide Sockets ein, machst aber nur einen Button oder so was mit "Verbinden".
Der Button ruft den Client auf, der sich verbinden soll. Meines Wissens konnte man nen Timeout angeben beim Client und dann wird nach der angegebenen Zeit ein Event beim Client-Socket aufgerufen, wenn dieser keinen Server findet. In diese procedure schreibst du, dass sich der Server aufbauen soll.

Also so hab ich das gemacht und wenn ich dich richtig verstanden hab, war das auch dein Problem, mal von der Portfreigabe abgesehen.

lg fishly
never change a running system...
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#8

Re: Verbindung über Sockets ohne freigegebenen Port...

  Alt 1. Feb 2010, 20:24
Hi DjSp4rkY!

Keine Ahnung ob dein Thema noch aktuell für dich ist, aber schau mal hier... UDP Chat ohne Server


Gruß
Frank
  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 08:13 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