Autor Beitrag
Balthasar
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 19.07.09 10:53 
Folgende Anfrage wurde bereits in diesen Foren gestellt:
forum.delphi-treff.d...?p=196298#post196298
www.delphipraxis.net...1060414.html#1060414

Ich arbeite mit den Client- und Serversockets und versuche schon seit sehr sehr langer Zeit ein ganz einfaches simples Chattool zu schreiben womit ich mit meinen Kollegen kommunizieren kann, jedoch scheitere ich bei der Verbindung über das Internet (Asynchroner Socketfehler 10060), aber Lokal funtzt immer alles einwandfrei.
Nach langem Googeln und Suchen und nichts finden habe ich mich entschlossen zu fragen.

Anfangs fragte ich mich:
"Wieso funktioniert eine einfache Connection zwischen Client und Server nicht wenn Client oder Server sich auf einem anderen Computer befindet?"

Jetzt weiß ich jedoch das es an einem Router (sei es der von mir oder meinem Partner) liegen muss, versuche ich nämlich mit einem Kollegen OHNE Router
den Verbindungsaufbau dann klappts.
Einmal hat es auch funktioniert als ich und mein Kollege unsere Ports freigegeben haben, aber müssen nun alle Anwender meines Programms extra ihre
Router-Configs meinem Programm anpassen? Gibt es keine andere Möglichkeit?

Ganz kurz und knapp: Gibt es überhaupt eine Möglichkeit per "Delphi" einen Chattool zu schreiben welches keine Portfreigabe benötigt und mit Routern klar kommt?
Sind besondere oder andere Komponente dafür von Nöten?
Wie haben es Programme wie TeamSpeak geschafft? (TS soll ja in Delphi geschrieben worden sein).

Und hier einpaar zusätzliche Daten, keine Ahnung was das bringen soll aber ich bin schon sowas von am Ende mit dem Problem, da gehe ich von alles und allem aus:

Betriebssystem: Windows 7 (Getestet wurde mein Tool aber auch auf Vista)
Router: D-Link DI-524
Komponente: Clientsocket, Serversocket (Aber auch mit Indy habe ich es nicht geschafft)

/EDIT: Noch ne Frage, habe nur ich dieses Problem oder gibt es auch andere?


Zuletzt bearbeitet von Balthasar am So 19.07.09 11:20, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 19.07.09 11:03 
Hallo und :welcome: im Forum!

Ich habe eben in deinem Crosspost auf die Frage geantwortet.
www.delphipraxis.net/post1060388.html
Bitte gib doch wenigstens an, dass du auch woanders fragst, wenn du keine Geduld hast. Bevor jemand sich unnötig Mühe macht und etwas schreibt, was an anderer Stelle bereits geantwortet wurde...

Kurz gesagt:
Das ist normal und eine Einschränkung der Technik, nicht von Delphi, mehr siehe Crosspost.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 19.07.09 11:13 
Die Notwendigkeit für die Portfreigabe hängt mit der Art und Weise zusammen, wie verschiedene Netzwerktechniken - insbesondere NAT - mit der IP-Vergabe und dem Routing von Paketen zusammenspielen.

Mit Delphi geht das nicht; mit C, VB, .NET und anderen Programmierumgebungen aber auch nicht.

Naja, zumindest nicht ohne ein wenig zusätzliche Arbeit.

Eine Möglichkeit wäre UPnP, was aber auf vielen Routern aus Sicherheitsgründen abgeschaltet sein dürfte. Eine andere Möglichkeit ist ein zentraler Server im Internet. Diese Möglichkeit wird z.B. von TeamSpeak genutzt.

Und bevor Du fragst: Skype verbindet auch nur in den seltensten Fällen direkt zwischen zwei Usern: In der Regel wird bei Skype über STUN oder andere Mechanismen auf beiden Clients ein Port aufgebaut.

Narses hat dazu hier im Forum auch bereits ein recht ausführliches Tut geschrieben, was man für die Verbindung von zwei Clients über das Internet tun muss.

Aber mal ehrlich: Kam es dir nicht seltsam vor, dass Du Als Zieladresse eine IP angeben musst, die nicht der Adresse des Zielrechners entspricht. Mit ein wenig Überlegen dürfte es doch eigentlich offensichtlich sein, dass eine IP, die einem anderen Rechner gehört, nicht ohne Zutun auf dem eigenen Rechner rauskommt. Wär ja auch irgendwie schlimm sonst ;-)

Edit: Eine Angabe des Crossposts wär sinnvoll gewesen. Dann hätt ich mir die Arbeit hier sparen können.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Balthasar Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 19.07.09 11:25 
Sorry sorry sorry, komisch kommt es mir keines Wegs vor, soll nicht heißen das ich nicht weiß das ich mit TS-Servern und nicht Zielcomputern zutun habe xD.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 19.07.09 11:32 
Naja ... aber die Begriffe öffentliche und private IP-Adressen sollte man ja doch schon zumindest mal gehört haben ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Balthasar Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 19.07.09 11:33 
Auch diese Begriffe sind mir bekannt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 19.07.09 13:51 
Moin und :welcome: im Forum!

Hier findest du eine Erläuterung, warum das so ist. :les: :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.