PERBAIKI pembatas pesan

Saya relatif baru mengenal FIX-Protocol.

Pembatas untuk pesan FIX-Protocol terkadang menampilkan ^ dan di lain waktu |. Wikipedia untuk FIX-Protocol mengatakan [SOH] ( ‹Awal Header› untuk hex 0x01 ) sebagai karakternya.

Tolong jelaskan arti yang sama.

Misalnya pesan FIX-Protocol dapat secara visual direpresentasikan sebagai

8=FIX.4.4^9=122^35=D^34=215^49=CLIENT12^52=20100225-19:41:57.316^56=B^1=Marcel^11=13346^21=1^40=2^44=5^54=1^59=0^60=20100225-19:39:52.020^10=072^

or

8=FIX.4.4|9=122|35=D|34=215|49=CLIENT12|52=20100225-19:41:57.316|56=B|1=Marcel|11=13346|21=1|40=2|44=5|54=1|59=0|60=20100225-19:39:52.020|10=072|

Jadi apa sebenarnya perbedaan dalam menggunakan ^ atas |

Apakah ada pembatas lain yang digunakan juga. Tidak jelas mengapa [SOH] (0x01) cocok untuk ^ atau |

Itu bisa saja berupa angka SATU.


person Ashley    schedule 13.08.2014    source sumber


Jawaban (3)


Pembatas SOH = kode ASCII 01 adalah karakter yang tidak dapat dicetak. Melihat representasi biner dari pesan (misalnya dalam tampilan hex editor), Anda akan melihat karakter sebagai 0x01. Untuk menampilkan pesan, tampaknya beberapa orang menggunakan | dan lainnya menggunakan ^ yang merupakan karakter yang jarang digunakan sehingga merupakan pembatas yang baik.

person MP24    schedule 13.08.2014
comment
Jadi, ini berarti, pesan perbaikan sebenarnya pada kabel/soket/jaringan tidak akan berisi | atau ^ karakter tetapi hanya 0x01, namun, setelah terputus, 0x01 digantikan oleh salah satu | atau ^ karakter. Saya mungkin melenceng dari target di sini, tapi sangat menghargai bantuan Anda. - person Ashley; 14.08.2014
comment
Ya, lihat fixwiki.org/fixwiki/FPL:Tag_Value_Syntax untuk deskripsi formatnya. Melihat kode sumber untuk perbaikan cepat, ia juga menggunakan 0x01 sebagai pembatas. - person MP24; 14.08.2014
comment
Satu hal lagi yang perlu ditambahkan - Saya sering melihat pesan rax di file log. Di Linux, SOH akan sering ditampilkan di terminal sebagai kode escape C-nya, ^A, misalnya: 8=FIX.4.2^A9=207^A35=D^A43=N^A52=20140825-07:24:08 ^A122=20140825-07:24:08^A... . - person Andy Lynch; 08.09.2014

menggunakan karakter | hanya untuk kenyamanan visual, lebih mudah dibaca daripada ^A

cat your.file.fix | tr '\01' '|' | less

Anda dapat dengan mudah mengubah perintah di atas sebagai skrip shell khusus untuk membuka file sesi FIX

~/.bashrc

function fixlog {
  cat $* | tr '\01' '|' | less
}

maka secara sederhana

fixlog your.file.fix
person Julien    schedule 22.02.2019

Pesan FIX selalu memiliki nilai 0x01 di antara kolom dalam pesan, baik melalui kabel, di OMS/EMS, atau di file log. Hanya ketika pesan harus ditampilkan barulah substitusi dilakukan (OK, beberapa orang mungkin membersihkan file log mereka dan mentranskripsikan karakternya). Pesan FIX yang valid tidak pernah memiliki bidang pemisah pipa atau tanda sisipan. Hal ini juga terjadi bahwa pesan FIX tidak akan pernah berada di mana pun selain di antara bidang. ( adalah karakter yang tidak boleh muncul dalam teks yang dicetak - pesan FIX seharusnya dapat dibaca - dan tidak akan berbenturan dengan yang mengakhiri string C, sehingga seluruh pesan dapat diperlakukan sebagai string, jika Anda menginginkannya .)

person Mark Reece    schedule 26.07.2017