ASCII-Zeichen SOH, die nicht bedruckbar sein soll. Wenn sich die Konsole jedoch in meine Windows-Eingabeaufforderung einloggte, zeigte sie ein Smiley-Gesicht. Ich weiß nicht, ob dies das Problem ist, das meine FIX-Engine davon abhält, ein Anmeldepaket erfolgreich zu senden. Die andere Firma schaute sich die Tags und Werte meines Tags an, die gut aussahen, sagte aber immer, mein SOH-Delimiter sollte nichts anzeigen. Das wiederum würde dazu führen, dass der FIX-Server unsere Pakete nicht parsen kann und uns sofort abmeldet, sobald wir versuchen, ein Paket zu senden. Gibt es eine Möglichkeit dies zu machen, so erscheint das SOH ASCII-Zeichen nicht druckbar (als Leerstelle) oder ist das Smiley-Gesicht nur auf meiner Seite, aber das Paket ist korrekt, wenn es gesendet wird?Javascript FIX Engine SOH Zeichen Delimiter
Antwort
Die Art und Weise etwas zeigt hat nicht wirklich viel mit dem zu tun, was man den Draht herabs . Was es bedeutet, ein SOH zu senden, senden, binär
00000001
Sie Ihre TCP/IP-Verbindung. (Okay, 01000000
in Big Endian, die Röhren runter.) Das ist auch bekannt als 0x1
oder 0x01
.
Solche Zeichen werden normalerweise nicht angezeigt, aber in einem Editor wie vim
kann ich "nicht druckbare" Zeichen sehen, die durch eine Kombination aus einem Caret und einem Buchstaben oder Symbol gedruckt werden. Zum Beispiel kann eine Nachricht von dem heutigen Toronto Stock Exchange GTE:
8=FIX.4.3^A9=0132^A35=A^A34=459^A49=TMXGTE^A52=20160822-15:29:25.289^A56=1043K121^A50=1001K011^A57=1043K121^A369=916^A98=0^A108=30^A554=NKY9MXDRFTINI/sJIPxhPUY=^A10=203^A
So zuerst, müssen Sie prüfen, wie Sie die Zeichenfolge von Bytes konstruieren, die den Draht geschickt Down- werden. Sind Sie sicher Sie Codierung binär 00000001
für Ihr SOH-Byte, und nicht etwas, was Sie denken wird codiert, dass. Poste etwas Code; Du wirst mehr Hilfe bekommen.
Nächste Sache ist, sind Sie sicher Sie zeigen, was Sie denken, dass Sie angezeigt werden. Auch hier würde Code helfen.