private void Logon() { SocketLogonArgs logonArgs = new SocketLogonArgs(); logonArgs.IPAddress = IPAddress.Parse("127.0.0.1"); logonArgs.Port = 9050; engineConnect.Logon(logonArgs); Assert.IsTrue(engineConnect.IsConnected, "Engine(Connect).IsConnected"); Assert.IsTrue(engineListen.IsConnected, "Engine(Listen).IsConnected"); }
public void ResendTest() { Assert.AreEqual(engineConnect.MsgSeqNumIn, engineListen.MsgSeqNumOut, "MsgSeqNumIn=MsgSeqNumOut Before"); engineListen.ResetMsgSeqNumOut(engineListen.MsgSeqNumOut + 10); SocketLogonArgs logonArgs = new SocketLogonArgs(); logonArgs.IPAddress = IPAddress.Parse("127.0.0.1"); logonArgs.Port = 9050; engineConnect.Logon(logonArgs); Assert.IsTrue(engineConnect.IsConnected, "Engine(Connect).IsConnected"); DateTime timeout = DateTime.Now.AddSeconds(5); while (engineConnect.MsgSeqNumIn != engineListen.MsgSeqNumOut && DateTime.Now <= timeout) { Thread.Sleep(10); } Assert.AreEqual(engineConnect.MsgSeqNumIn, engineListen.MsgSeqNumOut, "MsgSeqNumIn=MsgSeqNumOut After"); }
static void Main(string[] args) { log.Debug("--> Main"); try { SocketLogonArgs logonArgs = new SocketLogonArgs(); logonArgs.IPAddress = IPAddress.Parse(ConfigurationManager.AppSettings["Host"]); logonArgs.Port = int.Parse(ConfigurationManager.AppSettings["Port"]); //set additional logon tags FIX4NET.FieldCollection fieldsLogon = (FIX4NET.FieldCollection)ConfigurationManager.GetSection("fixLogonFieldsSection"); if (fieldsLogon != null) { foreach (IField field in fieldsLogon) { logonArgs.AddField(field); } } MessageFactoryFIX factory = new MessageFactoryFIX(ConfigurationManager.AppSettings["BeginString"]); //IMessageFactory factory = new FIX_4_4.MessageFactoryFIX(); //IMessageFactory factory = new FIX_4_2.MessageFactoryFIX(); _factory = factory; //additional tags for factory to append on every message FIX4NET.FieldCollection fields = (FIX4NET.FieldCollection)ConfigurationManager.GetSection("fixMessageFieldsSection"); if (fields != null) { foreach (FIX4NET.IField field in fields) { factory.AddField(field); } } //create instance of FIX engine SocketEngine engine = new SocketEngine(); //set message timeout string messageTimeout = ConfigurationManager.AppSettings["MessageTimeout"]; if (!string.IsNullOrEmpty(messageTimeout)) { engine.MessageTimeout = int.Parse(messageTimeout); } //initialize FIX engine _engine = engine; _engine.MessageCacheFactory = new MessageCacheFlatFileFactory(); _engine.MessageFactory = factory; _engine.Initialize( ConfigurationManager.AppSettings["SenderCompID"], ConfigurationManager.AppSettings["SenderSubID"], ConfigurationManager.AppSettings["TargetCompID"], ConfigurationManager.AppSettings["TargetSubID"]); _engine.AllowOfflineSend = true; _engine.Received += new MessageEventHandler(engine_Received); _engine.Sent += new MessageEventHandler(engine_Sent); //reset MsgSeqNum(Out) string resetMsgSeqNumOut = ConfigurationManager.AppSettings["ResetMsgSeqNumOut"]; if (!string.IsNullOrEmpty(resetMsgSeqNumOut)) { _engine.ResetMsgSeqNumOut(int.Parse(resetMsgSeqNumOut)); } //reset MsgSeqNum(In) string resetMsgSeqNumIn = ConfigurationManager.AppSettings["ResetMsgSeqNumIn"]; if (!string.IsNullOrEmpty(resetMsgSeqNumIn)) { _engine.ResetMsgSeqNumIn(int.Parse(resetMsgSeqNumIn)); } _engine.Logon(logonArgs); if (!_engine.IsConnected) { throw new Exception("Logong failed"); } Console.WriteLine("press <Enter> to continue..."); Console.ReadLine(); string sendMessageFromFile = ConfigurationManager.AppSettings["SendMessagesFromFile"]; if (!string.IsNullOrEmpty(sendMessageFromFile)) { SendMessagesFromFile(sendMessageFromFile); } Console.WriteLine("press <Enter> to exit..."); Console.ReadLine(); _engine.Logout("USER LOGOUT REQUESTED"); _engine.Dispose(); } catch (Exception ex) { log.Error("Error running FIX test", ex); } log.Debug("<-- Main"); }