如何登录FIX协议?

时间:2016-06-18 16:58:16

标签: c# networking tcp fix-protocol

我是FIX协议的新手。我们使用TCP网络流建立连接,然后我们读取并向此流写入FIX消息。但是当我发送登录消息时,我得到的只是0。

如果有人可以共享一段工作代码,那将会很有帮助。

NetworkStream stm = openStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(data);
Console.WriteLine("Transmitting.....");
stm.Write(ba, 0, ba.Length);

byte[] bb = new byte[1024];
while (true)
{
    int k = stm.Read(bb, 0, 1024);
    if (k != 0)
    {
        for (int i = 0; i < k; i++)
            Console.Write(Convert.ToChar(bb[i]));
        Console.Write(k);
    }
}

1 个答案:

答案 0 :(得分:0)

在您发送LOGON (35=A)消息后,我假设您是发起人方。

要登录FIX服务器,您需要

  • 连接到FIX服务器
  • 发送LOGON message (35=A)
  • 收到LOGON message (35=A)
  • 发送和接收Heartbeat messages (35=0)

我建议您使用FIX库来处理FIX消息。 FIX协议有几条消息(session messagesapplication messages等),有些是非常复杂的消息。 我已将http://quickfixengine.org/用于dotnet和c ++,将quickfix/j用于java。

如果您使用图书馆,它会处理所有"session messages",您只需处理"application messages",例如NewOrderSingle(35=D)ExecutionReport(35=8)

要使FIX Connection保持运行,您(或库)需要交换多个"session messages"来同步ID。 ID(双方)非常重要,请正确接收消息。