Ankündigung

Einklappen
Keine Ankündigung bisher.

Socket-Message senden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Socket-Message senden

    Hallo zusammen,
    ich teste aktuell damit rum eine API zu implementieren.
    Hierbei handelt es sich um eine API zum "Lap Snapper"-System - Hiermit werden Rundenzeiten für Slotcars aufgezeichnet.
    Hierzu muss mit einer socket-connection gearbeitet werden - Davon blieb ich bisher verschont.

    Für die API muss ich eine socket-connection aufbauen - Ok.
    Anschließend muss ich eine message senden - Allerdings hört es schon bei der Formulierung dieser Message auf.

    Ich soll verschiedene Header-Fields für die Message senden - Mir ist allerdings nichtklar, wie diese formuliert sein muss.
    Als Info erhalte ich dies:

    Send Get LapSnapper Server Information message to LapSnapper Socket Server

    Example of Get LapSnapper Server Information message:
    0x70, 0x17 = 6000 Message ID
    0x13, 0x00, 0x00, 0x00 = 19 Length of message
    0x40, 0x42, 0x0f, 0x00 = 1 000 000 Client Product ID (See table
    0xA0, 0x86, 0x01, 0x00 = 100000 Version number
    0x04 = 4 Length of LapSnapper Server password
    0x01, 0x02, 0x03, 0x04 = 1, 2, 3 ,4 LapSnapper Server password


    Komplette Doku: https://www.lapsnapper.com/wp-conten...rface_v100.pdf

    Mir fehlt hier aktuell der grundsätzliche Angang, wie eine solche Message formuliert werden muss.
    Wie setzt ich die Header-Fields?
    Kann mir da jemand einen Denkanstoß geben? Google hat mir bisher da nur semi-geholfen.

    Den Rest kann ich mir anschließend sicher erarbetein.

    Grüße

  • #2
    Ich soll verschiedene Header-Fields für die Message senden - Mir ist allerdings nichtklar, wie diese formuliert sein muss.
    Du sendest Bytes. In der Doku steht dann, welche Bytes was bedeuten.

    In dem Beispiel wäre die zu sendende Bytefolge (als Hex)
    Code:
    70 17 13 00 00 00 40 42 0F 00 A0 86 01 00 04 01 02 03 04

    Kommentar


    • #3
      Du erwartest jetzt nicht das sich jemand die Protokollbeschreibung für dich hier aufbereitet. Da mußt du schon allein durch.

      Fange klein an indem du dich mit den internen Darstellungen von Variablen vertraut machst. pack und unpack sind dafür die Funktionen. Beispiel:
      PHP-Code:
      $messageId 6000;
      $message pack("v",$messageId);
      debug::write($message); 
      Ausgabe:
      0 string(2) ASCII "p\x17"
      Also Stück für Stück deine Message zusammenbauen. Erstelle dir dafür Funktionen/Methoden und teste diese. Wenn dies alles steht kannst du deine Mesage zur API senden und schauen ob da dann das gewünschte zurückkommt.

      Achtung: echo und var_dump sind für Testausgaben solcher Binärstrings ungeeignet!

      Kommentar


      • #4
        PHP-Code:
        var_dumpbin2hex($message) ); 
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Beachte auch die Little Endianess.
          Auch schön, dass dies für Passwort scheinbar nicht gilt (oder es ist falsch dokumentiert). Und wer kennt nicht die sicheren 4 Byte Passwörter.
          "Software is like Sex, it's best if it's free." - Linus Torvalds

          Kommentar


          • #6
            Zitat von JaMa Beitrag anzeigen
            Und wer kennt nicht die sicheren 4 Byte Passwörter.
            Es scheint so, als könne das Passwort auch länger sein (sonst ergibt das password-length byte keinen Sinn).

            Kommentar


            • #7
              Zitat von Dormilich Beitrag anzeigen
              Es scheint so, als könne das Passwort auch länger sein (sonst ergibt das password-length byte keinen Sinn).
              Oh, das habe ich übersehen, gut dann hab ich dazu nichts gesagt.
              "Software is like Sex, it's best if it's free." - Linus Torvalds

              Kommentar

              Lädt...
              X