Entwickler-Ecke
Internet / Netzwerk - Programm und IP-Adresse
Jakane - Mi 18.04.12 12:03
Titel: Programm und IP-Adresse
Hallo Delphi-Helfer :)
Ich habe ein kleines "Chat-Programm" geschrieben. Solange das Programm auf meinem PC gestartet wird, sei es direkt oder über Netzwerk, läuft das Programm toll.
Jetzt möchte ich aber meiner Freundin das Programm auch schicken. Sie hat aber keine Netzwerkverbindung zu mir.
Gibt es da vlt. eine Möglichkeit das ich die IP-Adresse meines PCs ansteuern kann, damit meine Freundin auf meine Daten, die das Programm braucht, zugreifen kann? :)
Ich danke schonmal für Antworten :D
Moderiert von
Narses: Topic aus Dateizugriff verschoben am Mi 18.04.2012 um 12:21
Jakane - Do 19.04.12 08:30
:D
ich habe keine Ahnung was das alles für Begriffe sind :D
aber ich denke nein, mein Programm macht nichts anderes als Textdaten zu schreiben und zu lesen, auf meinem PC.
Und da würd ich gern wissen, ob das Programm auf mein PC zugreifen kann (wenn ich im Internet angemeldet bin), damit er die Daten lesen kann :)
Nersgatt - Do 19.04.12 08:50
Nur zum Verständnis, wie funktioniert Dein Chat?
Dazu braucht man ja mindestens 2 Chatpartner. Nennen wir sie PC A und PC B
Du hast auf PC A z.B. ein Laufwerk freigegeben. Das Programm auf PC B liest und schreibt nun in Textdateien, die auf PC A liegen?
Jakane - Do 19.04.12 10:09
Nersgatt hat folgendes geschrieben : |
Nur zum Verständnis, wie funktioniert Dein Chat?
Dazu braucht man ja mindestens 2 Chatpartner. Nennen wir sie PC A und PC B
Du hast auf PC A z.B. ein Laufwerk freigegeben. Das Programm auf PC B liest und schreibt nun in Textdateien, die auf PC A liegen? |
Ja.
Das ist mein aktueller Stand :)
Nur das meine Freundin keine Netzwerkverbindung zu PC A hat.
Und ich will das das Programm diese Verbindung alleine herstellen kann.
Irgendwie müssen die ChatProgramme ICQ, MSN und Co das ja auch machen :D
Nersgatt - Do 19.04.12 10:21
Jepp. Du hast Lernschritt 1 für ein Chatprogramm abgeschlossen. So hab ich auch mal angefangen. Lang ist es her.
Jetzt kommen wir zu Lernschritt 2. :D
Schreibe Dein Programm so um, dass Du die Dateifreigabe nicht mehr brauchst. Dazu müssen die beiden Chatprogramme direkt über das Netzwerk kommunizieren.
Dafür kannst Du die Indykomponenten benutzen. Das ist eine Sammlung von Komponenten für die Kommunikation über das Netzwerk. Als Beispiel TidTCPServer und TidTCPClient. Einen Einstieg gibt es hier:
http://www.delphi-treff.de/tutorials/netzwerk-und-internet/indy/tcp-tidtcpclient/
Alternativ der Weg, den Narses in dem Tutorial nutzt, das zuma oben schon verlinkt hast. Das benutzt nicht die Indykomponenten, sondern TServerSocket und TClientSocket. Das grobe Prinzip ist das selbe.
Wenn Du das fertig hast und verstanden hast, wie es funktioniert (im lokalen Netzwerk), dann können wir uns drüber unterhalten, wie das ganze im Zusammenspiel mit Deiner Freundin funktioniert.
Jakane - Do 19.04.12 10:24
Nersgatt hat folgendes geschrieben : |
Wenn Du das fertig hast und verstanden hast, wie es funktioniert (im lokalen Netzwerk), dann können wir uns drüber unterhalten, wie das ganze im Zusammenspiel mit Deiner Freundin funktioniert. |
Find ich cool, Danke :D
Jakane - Fr 20.04.12 10:25
Ok, solange ich local bleibe funktioniert die Client-Verbindung... das hatte ich aber auch ohne Server-Client ^^
Aber keine Internetseite oder mein Netzwerk selbst oder Prozeduren im Delphi-Forum, konnte mir eine IP geben mit der ich mich verbinden konnte :( habe 3 verschiedene IPs bekommen...
Hab leider einen Router und weiss nicht wie ich an meine richtige IP komme
Jakane - Mo 23.04.12 10:09
Ok.
Inzwischen habe ich einen Port auf meinem Router hinbekommen.
Die Frage ist nun nur noch, wie ich das im Programm schreibe.
:les:
Im Tutorial steht das ich den Port von der Server und Client-Komponente für das Programm brauche (wenn ich das richtig gelesen habe).
Den Port einfach am Ende der IP mit :Nummer funktioniert auch nicht.
Wie verbind ich mich da jetzt :?:
Nersgatt - Mo 23.04.12 10:15
Welche Komponenten verwendest Du denn jetzt? Meistens hat die Entsprechende Komponente eine Eigenschaft, die z.B. "Port" heißt.
jaenicke - Mo 23.04.12 10:31
Am besten schreibe / screenshotte erst einmal was du wo eingestellt hast, sowohl im Quelltext als auch im Router... dann können wir auch etwas dazu sagen.
Nersgatt - Mo 23.04.12 11:11
Die Idee ist ja, dass der Router anhand des Ports weiß, an welchen seiner Clients im lokalen Netz er die Daten weiterleiten muss.
Du musst 2 verschiedene Ports unterscheiden. Zum einen den Port, an dem Dein Programm auf Daten lauscht. Und den Port, den Du auf dem Router freigegeben hast.
Clientprogramm -> Router (öffentliche IP) -> Client (private IP).
Also stellst Du in Deinem Router (öffentliche IP 79.203.146.111) ein, dass z.B. der Port 4711 an den Client A (z.B. 192.168.1.1) mit dem Port 1234 weitergeleitet wird.
Wenn sich jetzt von außen ein Clientprogramm mit dem Router verbindet (natürlich muss das Programm sich mit der öffentlichen IP und dem freigegeben Port verbinden, hier 4711), dann weiß der Router anhand des Port, dass diese Daten an den Client A an den Port 1234 weitergeleitet werden sollen. Er setzt das also entsprechend um.
Aus Sicht des Clientprogramms ist es völlig egal, ob da jetzt noch ein Router dazwischen ist, oder nicht.
Wenn beide (Clientprogramm, Serverprogramm) im selben Netz sind, müsste sich das Programm mit der IP-Adresse 192.168.1.1 + Port 1234 verbinden.
Ist aber der Router dazwischen, muss er sich mit der IP 79.203.146.111 + Port 4711 verbinden.
Jakane - Mo 23.04.12 11:51
ich bin verbunden!
juhuu :dance2:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!