Direkter Datenaustausch

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Direkter Datenaustausch

    Servus Community,
    ich möchte ein Programm schreiben welches auf zwei PCs installiert werden soll welches es mir erlaubt von einem PC auf den anderen PC Daten zu übertragen und zwar direkt ohne Server.
    Ähnlich wie Skype, bei dem man Text, Bilder und andere Dateien schicken kann. Jetzt wollte ich mal fragen was für Verbindungen ich da nehmen sollte.
    Das ganze möchte ich in VB.net realisieren.

    Danke für die Antworten

    Gruß

    *Topic verschoben*
    Wo viel kopiert wird, wird wenig kapiert.
    Andreas Tenzer
    (Dt. Philosoph, * 1954)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hi,

    wieso nicht nen einfachen VPN-Tunnel? Dann musst du nicht extra ein Programm schreiben. Beide PCs werden direkt verbunden, oder bei Bedarf auch beide Netzwerke (je nachdem ob End-To-End, End-To-Point oder Point-To-Point).

    Falls die zwei betreffenden Rechner direkt nebeneinander stehen, geht's ja mit AdHoc oder CrossOver-Kabel. Aber ich vermute das meintest du nich(?)

    Link :thumbup:
    Hello World

    F4talError schrieb:

    und zwar direkt ohne Server

    Was du vielleicht meinen könntest ist eine Art Kommunikation über Broadcasts bei der du keine Server-IP angeben musst und die Informationen dann über diesen Umweg an einem bestimmten Port des Clients ankommen.

    Das heißt aber im Endeffekt: Zwei "Clients" welche beide z.B. auf Port 2048 (nimm am Besten einen über den Well-known Ports also über 1023 weil du da keine Administratorrechte für den bind brauchst) lauschen und warten bis Datenverkehr ankommt.

    Ich hab das Ganze in einem Projekt mal so realisiert, dass ein UDP-Paket genau auf die oben beschriebene Weise versand wird, das die IP-Adresse des Senders enthält, und die beiden Clients anschließend eine Kommunikation über TCP (weil: Verbindungsorientiert) aufbauen, die die Daten dann übertragt.

    F4talError schrieb:

    von einem PC auf den anderen PC Daten zu übertragen
    Kennen sich die beiden PCs (im Sinne von IP-Adresse oder DNS)?
    Kann einer der PCs als Server fungieren und sich der andere als Client damit verbinden?
    Sind die Rechner in einem Netz oder sind sie nur durch Internet verbunden?

    Für den Verbindungsaufbau muss immer ein Server hören.
    Das kann einer der beiden Partner sein oder ein zentraler Server.
    Ein PC kann gleichzeitig als Client und als Server agieren.
    Aber dazu muss der Partner-Client die Adresse des Servers kennen (ausser bei lokalen Broadcasts).
    Auch bei Peer-To-Peer-Netzwerken wie Filesharing gibt es Clients, die als Vermittlungsserver agieren.

    Serverlose Broadcasts werden nur im lokalen Netz übertragen.

    F4talError schrieb:

    Ähnlich wie Skype
    Auch hier läuft der Verbindungsaufbau über den zentralen Skype-Server.
    Erst danach wird über Holepunching eine Direktverbindung aufgebaut.

    Es wäre sehr hilfreich, wenn sich der TE mal wieder melden würde, damit man nicht im Nebel stochern muss.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --