| |

Fortgeschrittene ProgrammierungRe: UDP Hole-Punching in VB? | |  | Autor: TheNukeduke | Datum: 30.07.08 22:27 |
| SenZe schrieb:
Zitat: |  | 1. Es sollte doch nicht allzuschwer sein, das in VB mit
Winsocks zu realisieren, oder? |  |
Kommt drauf an, wie man "allzuschwer" definiert... Aber möglich ist es.
Zitat: |  | 2. Es sollte doch auch möglich sein, das ganze ohne einen
öffentlichen Server zu machen, wenn IPs und Ports beider PCs,
die miteinander kommunizieren wollen, bekannt sind, oder? |  |
Ja... wenn... IdR weißt du aber nicht, welchen Port jetzt dein
Router nach außen hin verwendet, der ändert den nämlich unter Umständen.
Zitat: |  | 3. Geht das nur mit UDP? Oder auch mit TCP/IP? |  |
Ja, aber sehr niedrige Erfolgschancen.
Zitat: |  | Ich würde in VB das ganze so umsetzen:
1.Die 2 Benutzer (Server und Client) tauschen sich via ICQ
oder was auch immer aus, um sich gegenseitig ihre IP
mitzuteilen und Ports abzumachen. |  |
Wie gesagt, du müsstest erstmal wissen, welchen Port der Router nach außen
hin auf gemacht hat. Mitunter nicht möglich.
Zitat: |  | 2.Benutzer 1 "puncht" ein Loch in seine Firewall
indem er mit Winsock ein Datenpaket an die bekannte IP
Adresse über den abgemachten Port sendet.
3. Das Datenpaket kommt bei Benutzer 2 wegen der Firewall
nicht an, aber die Firewall von Benutzer 1 kriegt das nicht
mit und denkt, sie sei mit Benutzer 2 verbunden, lässt also
Daten, die von IP und Port von Benutzer 2 kommen, durch. |  |
Da wie gesagt sich der öffentliche Port bei ändern kann, z.B.
hier bei Benutzer 2, könnten die Pakete plötzlich von nem anderen
Port kommen (was nichtmal ein Problem sein dürfte), allerdings kann
es sein, dass sie bei dir an einen geschlossenen Port kommen, weil
der Router auch hier nen anderen Port nach außen benutzt.
Zitat: |  | 4. Jetzt kann sich Benutzer 2 mit Benutzer 1 verbinden, da
die Firewall von Benutzer 1 praktisch ein "Loch"
hat, das es selbst durch seinen Connect-Versuch geöffnet hat.
So in etwa müsste es doch gehen, oder habe ich da was falsch
verstanden? |  |
Es kann geklappt haben, kann aber auch nicht. Das liegt daran, dass
sich Router völlig unterschiedlich beim Öffnen von Ports verhalten
können. Stichworte wären hier Full Cone, Restricted Cone und Symmetric NAT,
sortiert von "leich auszutricksen" nach "schwer auszutricksen."
Generell kannst du dich darauf einstellen, dass das ganze sehr komplex
werden wird, wenn es mit allen Firewalls und Routern funktionieren
soll (was eigentlich auch nicht möglich ist). Ohne externen Server
wirst du da wohl nicht auskommen.
Ich habe da selbst mal dran gebastelt, und es hat auch teilweise
funktioniert, je nach eingesetzten Routern. Jedoch war das teilweise
schon ein Glücksspiel, obs nun klappt oder nicht, zuletzt lief es gar
nicht mehr, vermutlich hat t-online irgendwas an ihrem STUN Server
verändert, den ich dazu nutzte. Bin an dem Projekt allerdings auch
nicht mehr dran.
Eigentlich muss man sich dafür nur ins STUN Protokoll einlesen, und
viel geduld haben. Das Nervigste war immernoch, dass man ein
Byteprotokoll in VB6 implementieren muss, sehr ätzend.
Gru?,
Nukeduke
if (youAreHappyAndYouKnowIt) {
???ClapYourHands();
} |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|