Einzelnen Beitrag anzeigen

hardy1234

Registriert seit: 8. Aug 2004
Ort: Hamburg
26 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Chat mit Indy über Internet

  Alt 20. Jun 2005, 00:30
Zitat von Neutral General:
Zitat von XHelp:
Wenn du einen router hast, dann muss du zuerst port-forwarding machen...
Port Forwarding ? Also ich habe jetzt Ports freigegeben auf meinem Router. Jetzt kann ich schonmal über die Internet IP mit mir selbst chatten

[edit]jetzt kann ich mit anderen Chatten aber der Client bekommt die antworten von Server nicht. Umgekehrt schon o.O[/edit]
Ich würde mal darüber nachdenken nen Internet-Server mit Apache(kostet nix, LAMP empfiehlt sich) aufzusetzen. Dafür besorgt man sich bei www.dyndns.org ne Url zu seiner dynamischen IP(kostet nix). Dann installiert man ein PHP-Script, das etwa so aussehen könnte:

Delphi-Quellcode:
<?php
  $command = $_GET['command'];
  $servername = $_GET['servername'];
  if ($command == "getdynamicip") {
    $result = getenv("REMOTE_ADDR"); 
  }

  if ($command == "getdynamichost") {
    $result = getenv("REMOTE_HOST"); 
  }
  
  if ($command == "getserverip") {
    $result = getenv("SERVER_ADDR"); 
  }
  
  if (($command == "getdynserver") and ($servername <> "")) {
    $result = gethostbyname($servername); 
  }
 
  if (($command == "getownwebname") and ($servername <> "")) {
    $result = gethostbyaddr($servername); 
  }

  if (($command == "getownwebip") and ($servername <> "")) {
    $result = gethostbyname($servername); 
  }

  if ($command == "getall") {
    $serverip    = getenv("SERVER_ADDR");
    $result      = "serverip = [$serverip]";   
    $serverdynip = gethostbyname($servername);     
    $result    .= ";serverdynip = [$serverdynip]";
    $clientip    = getenv("REMOTE_ADDR"); 
    $result    .= ";clientip = [$clientip]";
   $clientport  = getenv("REMOTE_PORT");
   $result    .= ";clientport = [$clientport]";
    if ($clientip <> "") {
      $clientfqdn  = gethostbyaddr($clientip);
      if ($clientfqdn <> "") {
        $result    .= ";clientfqdn = [$clientfqdn]";
      }
  
    }
  }
      
// $dynamicsrv1 = gethostbyname("meet-me-now.dyndns.org");
// $dynamicsrv2 = gethostbyname("meet-me-now.dnsalias.org");
// $result = "getserverip = [$serveraddr]";
// $result .= "/getdynamicip = [$remoteaddr]";

  echo $result;
?>
Nun muß man auf dem Sever einen Chat-Server mit Datenbank(geht auch ohne) aufsetzen. Der Client besorgt sich per Scriptaufruf(TIdHTTP) die relevanten Daten( das Script liefert alles Wissenswerte) und connected mit dem Chat-Server. Der Charm an der Geschichte ist, das man keine Probleme mit dem Router bekommt, gleich viel welcher das ist. Am eigenen Router muß für diesen Zweck lediglich der Port des Chat-Server als virtueller Server eingerichtet werden, damit der diesen Zugang von außen nicht sperrt.
Dann mußt Du dir noch ein eigenes Protokoll ausdenken und schon funzt das weltweit, wenn man den passenden Client zur Verfügung stell. Selbstverständlich per Download auf dem eigenen Web-Server.

Gruß Hardy
Es gibt keinen schöneren Tag als den heutigen. Der gestrige ist vorbei und von den kommenden weiß man nicht was sie bringen.
  Mit Zitat antworten Zitat