Esempio n. 1
0
        static void Connect()
        {
            var random = new Random(Environment.TickCount);

            Port = random.Next(1024, UInt16.MaxValue);
            _connectionEstablished = new ManualResetEventSlim(false);

            _listener = new TcpListener(Fix.Network.GetLocalAddress(Host), Port);
            _listener.Start();
            _listener.BeginAcceptSocket(AcceptTcpClientCallback, _listener);
            _client = new TcpClient {
                NoDelay = true
            };
            _client.Connect(Fix.Network.GetAddress(Host), Port);
            Initiator = new Fix.PersistentSession
            {
                Stream          = _client.GetStream(),
                LogonBehaviour  = Fix.Behaviour.Initiator,
                PersistMessages = false
            };
            Initiator.Error       += Initiator_Error;
            Initiator.Warning     += Initiator_Warning;
            Initiator.Information += Initiator_Information;

            _connectionEstablished.Wait();
        }
Esempio n. 2
0
        static void AcceptTcpClientCallback(IAsyncResult ar)
        {
            var listener = (TcpListener)ar.AsyncState;

            _socket         = listener.EndAcceptSocket(ar);
            _socket.NoDelay = true;
            Acceptor        = new Fix.PersistentSession
            {
                Stream          = new Fix.NetworkStream(_socket, true),
                LogonBehaviour  = Fix.Behaviour.Acceptor,
                PersistMessages = false
            };
            Acceptor.Error       += Acceptor_Error;
            Acceptor.Warning     += Acceptor_Warning;
            Acceptor.Information += Acceptor_Information;

            _connectionEstablished.Set();
        }