AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TCP PHP und nu auch noch Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

TCP PHP und nu auch noch Delphi

Ein Thema von Corelgott · begonnen am 12. Jul 2005 · letzter Beitrag vom 20. Aug 2005
 
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#1

TCP PHP und nu auch noch Delphi

  Alt 12. Jul 2005, 01:48
Hi @ all,

ich bin mal wieder zu dumm....
Irgendwie habe ich weder beim googlen noch beim suchen hier was gefunden, was mich auf ne vernünftige idee bringt...

Es geht um folgendes...

Ich will nen teamspeak server abfragen... (d.h. channels, user, usw)

Mir ist klar, dass ich das so ohne ne vorlage vergessen kann... deswegen:
http://wolfmap.gameprophets.com/teamspeak/display.php

Das php-script habe ich auch als "quelltext"...

Der macht das eigentlich recht simpel:

PHP-Code:
Code:
function _openConnection(&$socket, $host, $port, $timeout) {
   echo $host;
   $socket = fsockopen($host, $port, $errno, $errstr, $timeout);
   $res   = fgets($socket, 4096);
   echo $res;
   if ($socket and ($this->_stripEOL($res) == "[TS]")) {
      return true;
   } else {
      return false;
   }
}
Das prob ist bloß:

1.

PHP benutzt den Socket als file-stream. Somit passt das auch mit fgets
-> Wie realisiert man das bitte unter Delphi? Weil bei den read-events kommt nix.. rein gar nix zurück...
Vor allem gibt es bei dem Bsp. oben keinen "Grund" warum der Server etwas an daten liefert sollte... (Abgesehen von der ftgets-Aufforderung... sowieso interressant, das der ts Server bei "keinem" Befehl nur so mal eben "[TS]" sendet)

2.

PHP-CODE:
Code:
function _getServerInfo($socket) {
   fputs($socket, "si\n");
   $result = array();
   do {
      $buffer = $this->_stripEOL(fgets($socket, 4096));
      if (($buffer != "OK") && (strtoupper(substr($buffer, 0, 5)) != "ERROR")) {
         $pos = strpos($buffer, '=');
         if ($pos !== False) {
            $result[substr($buffer, 0, $pos)] = substr($buffer, $pos + 1);
         }
      }
   } while (($buffer != "OK") && (strtoupper(substr($buffer, 0, 5)) != "ERROR") && (!feof($socket)));
   return $result;
}
Wenn ich depp das richtig lese schickt das Fieh an den socket "si" & LineBreak. Darauf hin pustet der Server seine infos raus, bis entweder "ERROR" oder "OK" oder EOF kommt...

Aber egal wie oder was ich über meine Socket Conn-Puste... im onRead des Sokets kommt nix an... gar nix...

Irgendwie habe ich jetzt nicht mehr so richtig den Plan...
Ich bin auch ned soo bewandert in socket-programmierung...

Kann mir da mal vielleicht jemand nen Tipp geben wonach ich google könnte?
Bzw. hätte da wer ne Page für mich?
(Auch was generelles über diese art Technik zur Serversteuerung... nicht zwingend ts, wäre aber nett ^^)

Oder ist das ganze gar kein normales TCP sondern UDP? (Laut php-man müsste das eigentlich TCP sein, das udp als protokoll expizit angegeben werden müsste, was nicht gemacht wird im script!)

THX fürs nachdenken!
cya Corelgott
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz