ASCII字符SOH,不应该是可打印的。但是,当控制台登录到我的Windows命令提示符时,它会显示一个笑脸。我不知道这是否是阻止我的FIX引擎成功发送登录数据包的问题。另一家公司看了我的标签和价值看起来很好,但一直说我的SOH分隔符不应该显示任何东西。这反过来会导致他们的FIX服务器无法解析我们的数据包,因此,一旦我们尝试发送数据包,就会立即断开连接。有没有办法让它成功,所以SOH ASCII字符看起来不可打印(作为一个空白区域)或只是出现在我身边的笑脸,但发送时数据包是否正确?
答案 0 :(得分:0)
显示的方式与您发送电子邮件的内容并没有多大关系。发送SOH意味着什么,以二进制方式发送
00000001
关闭TCP / IP连接。 (好的,在Big Endian中01000000
,在管道下方。)这也以十六进制表示为0x1
或0x01
。
这些字符通常不会显示,但在像vim
这样的编辑器中,我可以看到由插入符号和字母或符号组合打印的“不可打印”字符。例如,今天多伦多证券交易所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
首先,您需要检查如何构建从线路发送的字节串。你确定你是在为你的SOH字节编码二进制00000001
,而不是你认为被编码的东西。发布一些代码;你会得到更多帮助。
接下来的事情是,你确定你正在显示你认为你正在展示的内容。再一次,代码会有所帮助。