我完全掌握了PHP套接字和FIX协议的基本知识。我有一个帐户,允许我连接到服务器并检索货币价格。
我调整了这段代码来连接并找出我从远程服务器收到的内容:
$host = "the-server.com";
$port = "2xxxx";
$fixv = "8=FIX.4.2";
$clid = "client-name";
$tid = "target-name";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "$fixv|9=70|35=A|49=$clid|56=$tid|34=1|52=20000426-12:05:06|98=0|108=30|10=185|";
echo "\n".$out."\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo ".";
echo fgets($fp, 1024);
}
fclose($fp);
}
我一无所获。主机很好,因为当我使用随机主机时出现错误。 我发送的邮件是否没有生成回复?
我可能不太擅长在谷歌找东西,但我找不到任何关于如何用PHP做这个的简单教程(至少没有什么把修复和PHP放在一起)。
非常感谢任何帮助。
答案 0 :(得分:4)
FIX分隔符实际上是'\001'
而不是'|'
,因此您必须在发送时替换它。
一些链接:
你从同一篇wikipedia文章中提到:
使用ASCII 01字符分隔消息字段 ...
FIX消息的示例:执行报告(管道字符用于表示SOH字符)...
更多要点:
SOH
分隔符的所有消息字符的ASCII值的模数256和,但不包括标签10本身(我知道,在顶部有校验和是愚蠢的TCP,但......)