phpbar.de logo

Mailinglisten-Archive

AW: [php] Hex-Daten ueber fsockopen()

AW: [php] Hex-Daten ueber fsockopen()

Diener Carlos Carlos.Diener at swisslife.ch
Fre Jan 7 16:20:54 CET 2005


> Von: Norbert Pfeiffer
> versuche es mal mit dem etwas geaenderten Script:
> [hier war das Script] :)
Habe es noch etwas modifiziert und geschaafft, dass die
Daten so ankommen, wie sie sollten:
<?php
  $paket1 = array(0x03, 0x18, 0x13, 0xE0, 0xC0, 0x01, 0x0A, 0xC2,
 0x03, 0x53, 0x52, 0x43, 0xC1, 0x03, 0x44, 0x53, 0x54);
  $host = '192.168.0.25';
  $port = '102';
  $fp = fsockopen($host, $port, $errno, $error, 9);
  if(fp) {
    echo "Verbindung steht!\n";
    foreach($paket1 as $data) {
      $wr .= fwrite($fp, chr($data));
    }
    echo "<br>schicke Hex-Daten...(mit lokalem echo)<br>";
    fwrite($fp, sprintf('%d', $wr));
    echo "($wr)";
    printf('%02X', $wr); //Die lokale Ausgabe stimmt noch nicht
    echo "\n";
    fclose($fp);
    echo "Verbindung beendet.<br>";
  } else {
    echo "Konnte keine Verbindung zum Rechner aufbauen";
    echo "[$errno] ".$error." - <b>exit;</b>\n";
    exit;
  }
?>
Wichtigste Neuerung, ich muss die Daten auf einmal schicken,
da er sonst weitere Bytes dazwischen packt, warum auch immer.

> Nochmal zum senden mit printf();
> Das wird so nicht funktionieren koennen, weil printf();
> fuer 0x00 ein '00' und kein chr(0) ausgibt.
Stimmt, aber anscheinend brauche ich diese Werte gar nicht,
habe die 0x00 einfach rausgelöscht.

> Und es ist auch fraglich, wie printf(); innerhalb
> von fwrite(); reagiert.
Scheint keine Probleme zu machen, fprintf ist ja leider ab
PHP5 dabei und sonst wüsst ich nicht wie ich das machen könnte.

Jetzt hoffe ich nur ich kann ueberhaupt interaktiv arbeiten mit
dieser Verbindung, da es ja HTTP ist, ansonsten muss ich
trotzdem mal mit netcat oder C versuchen.

Auf jeden Fall herzlichen Dank, habe einiges dabei gelernt.

Gruss Carlos Diener

php::bar PHP Wiki   -   Listenarchive