Peer to Peer over Internet?

Hallo
Meine Frage lautet, wie schon oben angedeutet:
Wie kann man eine Verbindung zwischen zwei Computern im Internet aufbauen?
Die Frage ist jetzt nicht, wie man als User eine Verbindung zu einem Internetserver aufbauen kann, sondern wie man als user einen Port als Server öffnet(ähnlich Port 80 für http) und mit einem anderen User, der ebenfalls einen solchen Server gestartet hat, in Verbindung tritt.

Die Frage könnte auch lauten, wie finde ich heraus, als was ich und der andere im Internet in Erscheiung treten, damit die verschiedenen Server mich zum anderen routen können?
Also welche IP-Adresse oder welcher Computername zum Beispiel gelten eigentlich?
Die eigene IP-Adresse kann man über bestimmte Seiten herausfinden, hab ich schon herausgefunden.
Hat schon mal jemand so etwas gemacht?
MfG
Matthias

Hallo Matthias,

das was du suchst ist eine Art Chat. Um dein Vorhaben zu realisieren sollte das Winsock Control ausreichend sein.
Hast du schon Erfahrungen damit gesammelt?

Du musst dazu einen Rechner als Server aggieren lassen und den anderen als Clienten. Wer was übernimmt spielt dabei keine Rolle.

Ich weiss ja nicht wie weit deine Kentnisse reichen in der programierung mit dem Winsock Element.

Aber vorgehen kannst du wiefolgt.
Die IP Adresse des Zielrechners muss bekannt sein! Alternativ kannst du Tools wie DNS2go nutzen die dich dann auf deinen Rechner weiterleiten. Dann brauchst du nur die Addi :wink:

Aber nun zum Ablauf.

Rechner startet und versucht einen Connect auf dem Port xyz zu dem anderen Rechner, als CLIENT! Setze ein ResponseTimeOut. Ist dieser erreicht und der Client hat kein Connect, dann bedeutet es das der andere Rechner nicht als Server aggiert. Ergo schliesst du die Verbindung und startest den Rechner als Server!
Das gleiche vorgehen machst du auf den anderen Rechner. So hast du einen Connect zwischen 2 rechner, sobald sie Online sind und das prog gestartet ist :smile:

Wenn dir dieser Weg zusagt und du dabei Probleme haben solltest, so sage bescheid und ich kann dir mal ein Grundgeruest posten :wink:

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Die IP Adresse des Zielrechners muss bekannt sein! Alternativ

kannst du Tools wie DNS2go nutzen die dich dann auf deinen
Rechner weiterleiten. Dann brauchst du nur die Addi :wink:

Hallo, also erst mal vielen Dank.
Ich hab Deine Antwort weitgehend verstanden.
Ich denke auch, eine Verbindung über IP-Adresse könnte klappen, hat es zumindest bei mir schon mal.
Das letztere versteh ich allerdings nicht genau. Ich vermute, es ist ein „richtiger“ Internet-Server notwendig. Zumindest müsste irgendwo ein fester Rechnername oder eine feste IP eingetragen werden.
Diese Netzwerkgeschichten haben mir schon öfters Kopfzerbrechen bereitet.
Ich brauch ja nicht auf den eigenen Computer weitergeleitet werden, sondern eben zum anderen.
Was meinst Du mit Addi??
Bekommt man eigentlich mit XP-Professional einen Webserver zustande?
(Ich habs nicht).
Und denn werd ich jetz mal wegen DNS2go nachschauen!
MfG
Matthias

Hallo Matthias,

nun einmal ganz langsam. Du hast 2 Rechner die du miteinander verbinden möchtest. Sagen wir mal Rechner 1 ist R1 und Rechner 2 ist R2.

Entweder R1 oder R2 muss als Server fungieren. Der andere Rechner dann als Client. Beide Rechner kommunizieren ueber einen Port. Sagen wir mal Port 12345.
Den Server schickst du eigentlich nur auf abhorchen. Wenn dann eine Anfrage hereinkommt, so muss sie akzeptiert werden. Sobald dies geschehen ist, besteht eine Verbindung der beiden Rechner.
Wenn der Server auf abhorchen ist, musst du mit dem Clienten einen Connect zu dem Server machen. Ergo musst du die Adresse des Rechners wissen. Da sich die IP stetig ändert hast du nun das erste Problem :frowning:
Aber dazu gibt es eine Lösung *zwinker*

Es gibt das Programm DNS2Go ( Ich weiss jetzt aber nicht ob es kostenfrei ist, aber es gibt dann noch andere Tools die des koennen!)

DNS2GO:

Du registrierst dich dort und bekommst dann eine Adresse. Sagen wir mal http://Matthias.Dns2go.com.
Du hast dann von Dns2go einen Clienten. Den musst du bei dir installieren und starten. Dieser legt sich dann in die TNA.
Wenn du dann die Adresse eingibst, so landest du bei deiner IP! Bsp. Ein Appache Webserver + DNS2Go --> Ein und die selbe Adresse und landest immer auf deinen Rechner :smile:
Aber den Appache Webserver brauchen wir nicht. Wir wollen ja nur die IP haben und die bekommen wir auf diesen Wege heraus.
Wenn du mittels Winsock einen Connect machst, so kannst du auch eine URL angeben. Ergo nehmen wir diese, di du zum Bsp. ueber DNS2GO bekommen hast.
Das bedeutet, egal wie du dein Rechner ein und ausschaltest. Wir haben immer die richtige Adresse :smile:

So nun sollte das grösste Problem gelöst sein und wir koennen das Tool schreiben.

Ein Bsp. könnte so ausschauen.

Deine Adresse bei DNS2GO -> Matthias.DNS2GO.Com
Eingestellter Port bei Winsock 12345
Protokoll = Http

Program Start:

ResponseTimeOut=20*60 '20 Sekunden
Connect zur Adresse Matthias.DNS2GO.com’Winsock1.connect …
Zeit ermitteln 'Start = timer
DO Schleife
Doevents
* Connect erfolgt -> Verbindung besteht -> Sub verlassen
loop until timer-start > ResponseTimeOut
'Connect kann nicht hergestellt werden -> Als Server fungieren lassen
winsock1.close
winsock1.listen

So koenntest du die Sache anfangen. Der rest erklärt sich dann von selbst :smile:

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like