Seite 1 von 1

Zu einem Programm auf einem anderen Computer connecten

Verfasst: 15.11.2005 21:30
von Outlaw
Hallo! <)

Wie kann man machen, dass z.B. mein Freund bei sich zu Hause mein Programm anmacht und sieht, dass ich on oder offline bin oder online komme bzw. offline gehe und auch nachrichten schreiben kann ? Ist so ungefähr wie ICQ oder so geht das überhaupt mit PureBasic? :freak:

Mfg Outlaw

Verfasst: 15.11.2005 22:07
von Nero
Hab mit PB zwar selbst noch nix Server mässiges gemacht, aber ich denke
mal du solltest dich erstmal über das TCIP oder UPD protokoll informieren

Und ohne einen Externen Server bzw. webspace wirst du das auch nicht
hinbekommen auser einer von euch beiden hat ne stantleitung :mrgreen:

Den dein Progi kann beim start nicht wissen welche IP dein Kumpel hat
auser du gibst sie manuel ein aber dann müste er sie dir auch erstmal
irgentwie übermitteln (z.B. SMS) günstiger wäre da du verpast dem Progie
ne Procedure welche beim start nen perl oder php script ect. auf deiner
HP abfragt ob eine aktuelle IP deines Kumpels Online ist. (Das script muß
aber gleichzeitig deine IP abspeichern damits auch umgekehrt funzt).

Falls das script dir nun eine aktuelle IP liefert kannst du zu dem Progie auf
dem Rechner deines Kumpels connecten.
Allerdings sollte keiner von euch beiden über nen Proxie gehen den sonst
must du den schrit mit dem Script immer wiederholen damit die IP's
aktuell bleiben.

Verfasst: 15.11.2005 22:12
von Outlaw
viel arbeit ;) aber werd ich schon hinkriegen ich kann ja auch PHP scripten
achso... DANKE! :allright:

mfg Outlaw

Verfasst: 16.11.2005 19:47
von Tafkadasom2k5
Ich werfe mal ganz eilig das Wort "DynDNS" in den Raum und verpisse mich wieder.
Damit müsste es auf jeden fall gehen.

Gr33tz
Der Marc

Verfasst: 16.11.2005 20:24
von Nero
Ist doch genau das was ich sagte nur das es nicht über den eigenen Webspace läuft sondern übern anbieter ich finde aber das ein eigenes kleines
php script auf dem eigenem webspace dynamischer ist und man kann es besser verwalten vorallem wen mehr als 2 benutzer im system sind.

Bei mehr als 2 nutzern brauchste ja dann auch wieder ne liste mit allen usern
die dann auch irgentwo liegen muß wo sie zugänglich ist, von daher würde ich die php methode bevorzugen.

Verfasst: 17.11.2005 14:53
von AND51
Tafkadasom2k5 hat geschrieben:Ich werfe mal ganz eilig das Wort "DynDNS" in den Raum und verpisse mich wieder.
HAHAHA, ich lach mich scheckig... Ich bin voll am rofln... Du hast zwar Recht, aber diese Ausdrucksweise... :lol: :lol: :lol:

DynDNS, www.dyndns.org , das ist schon der richtige Ansatz. Denn du weißt ja, wenn du dein programm bei dir anschaltest, gar nicht, ob dein Freund nu gerade online ist, oder nicht; außerdemm kennst du wahrscheinlich seine Internet-IP nicht.
Bei letzterem hilft dir DynDNS weiter: Du bruachst nur (keine Werbung, nur zu Demonstrationszwecken) www.and51.ath.cx eingeben z. B. in den browser... Es ist als würdest du meine reale IP eingeben, da DynDNS ein Service ist, der auf deine aktuelle IP weiterleitet. Dieser Service ist kostenlos und werbefrei, allerdings musst du deine benutzerdaten, die du bei der Anmeldung erhälst entweder in deinen Router eingeben, damit der automatisch deine DynDNS adresse korigiert, d. h. er stellt z. B. meine Domain dann immer auf meine aktuelle IP ein. Solltest du keinen Router haben, musst du eine Software installieren, z. B. Direct Update. Dieses Programm, wo du auch deine Kontodaten eintragen musst, loggt sich dann immer automatisch auf www.dyndns.org ein und aktualisiert deine Domain. Genauso wie der router, wenn er denn sowas unterstützt, machen würde.
Obwohl dieser Service kostenlos und werbefrei ist, muss die Domain innerhalb von 30 tagen mindestens einmal aktualisiert werden, ansonsten wird (nur) die Domain gelöscht. Keine Angst! Vor ablauf dieser Frist erhält man rechtzeitig eine Email...




Das allein reicht aber nicht. Denn wie soll das bereits eingeschaltete Programm prüfen, wan du online gehst? Eine möglichkeit, eine einfache, wäre zum Beipsiel www.mein-freund.dyndns.org (dyndns.org ist eine andere endung, die man sich aussuchen kann) anzupingen. Allerdings kann es sein, dass dieser Ping von deinem oder dem router eines Freudnes oder eurer Firewall verworfen, d. h. nicht durchgelassen wird.
Deshalb mein Tipp, dir irgendwo webspace zu suchen, es braucht ja nur 1 Kilobyte sein! Denn wenn dein programm eingeschaltet wird, programmierst du es so, dass du die aktuelle IP selbst eingibst oder automatisch eingeben lässt. Dein Programm muss nun nur noch diese IP in eine Textdatei schreiben und auf deinen Webspace hochladen.
Das Programm deines freundes, wenn er es einschaltet, sucht dann auf deinem Webspace nach dieser Datei. Ist sie virhanden, liest er die IP Adresse aus und weiß: "Aha, mein Freund ist online." Nach demselben prinzip funktionieren auch die Instant Messaging Programm wie AIM oder ICQ. Nur halt twas anders oder komplexer...


Sorry, wenn man dies nicht so gut lesen kann, weil ich vllt. mal nicht so oft absätze eingefügt habe oder zwischen durch alles KLEIN schreibe, aber meine finger sind mittlerweile taub...

MfG, AND51

Verfasst: 17.11.2005 17:58
von Nero
AND51 hat geschrieben:Deshalb mein Tipp, dir irgendwo webspace zu suchen, es braucht ja nur 1 Kilobyte sein! Denn wenn dein programm eingeschaltet wird, programmierst du es so, dass du die aktuelle IP selbst eingibst oder automatisch eingeben lässt. Dein Programm muss nun nur noch diese IP in eine Textdatei schreiben und auf deinen Webspace hochladen.
Hm mit dem hochladen ist so ne sache weil das programm in den meisten fällen ne FTP conection nutzt wobei dann die zugangs daten dem programm bekannt sein müssen. Oder halt per http upload aber besser wäre dann doch
nen kleines phpscript wo man die IP's abfragen kann, das script speichert beim abfragen dan noch schnell deine ip und vertig so beschränkt sich der ganze aufwand fürs programm nur aufs abfragen mehr nicht.
Eine einfach Benutzer unterscheidung kann man ja per parameter übergabe regeln z.B. "script.php?user=Freund&from=deinname"

Hab mal nen kleines Bsp. gemacht. Ist aber ungetestet

Code: Alles auswählen

<?php   
  if ((!$_REQUEST['user']) or (!$_REQUEST['from']))  
  {
    echo "ERROR";
  }
   else
  {
    $User = file('user.txt');
    $found = FALSE;
    $Data = array();  
      for ($x = 0; $x <= count($User)-1;$x++)
      {
        $Data = explode("|", $User[$x]);

        if ($Data[0] == $_REQUEST['user'])
        { 
          echo $Data[1];
        }
        elseif ($Data[0] == $_REQUEST['from'])
        { 
          $found = TRUE;
          $User[$x] = $Data[0].'|'.getenv("REMOTE_ADDR")."\r\n";
        }            
      }           
   
      if ($found == FALSE)
      {
       $User[count($User)] = $_REQUEST['from'].'|'.getenv("REMOTE_ADDR")."\r\n";
      }              
      $File = fopen("./user.txt","w+"); 
       foreach($User as $Data)
       {   
        fwrite($File, $Data); 
       }
      fclose($File);  
  } 
?>