public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings) { isDisconnectRequested_ = false; initiator_ = initiator; session_ = session; socketEndPoint_ = socketEndPoint; parser_ = new Parser(); session_ = session; socketSettings_ = socketSettings; }
public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings) { isDisconnectRequested_ = false; initiator_ = initiator; session_ = session; socketEndPoint_ = socketEndPoint; parser_ = new Parser(); socket_ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket_.NoDelay = socketSettings.SocketNodelay; session_ = session; }
/// <summary> /// FIXME get socket options from SessionSettings /// </summary> /// <param name="client"></param> public static void ApplySocketOptions(TcpClient client, SocketSettings socketSettings) { client.LingerState = new LingerOption(false, 0); client.NoDelay = socketSettings.SocketNodelay; if (socketSettings.SocketReceiveBufferSize.HasValue) { client.ReceiveBufferSize = socketSettings.SocketReceiveBufferSize.Value; } if (socketSettings.SocketSendBufferSize.HasValue) { client.SendBufferSize = socketSettings.SocketSendBufferSize.Value; } }
/// <summary> /// Creates a ClientHandlerThread /// </summary> /// <param name="tcpClient"></param> /// <param name="clientId"></param> /// <param name="debugLogFilePath">path where thread log will go</param> public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings) { string debugLogFilePath = "log"; if (settingsDict.Has(SessionSettings.DEBUG_FILE_LOG_PATH)) debugLogFilePath = settingsDict.GetString(SessionSettings.DEBUG_FILE_LOG_PATH); else if (settingsDict.Has(SessionSettings.FILE_LOG_PATH)) debugLogFilePath = settingsDict.GetString(SessionSettings.FILE_LOG_PATH); // FIXME - do something more flexible than hardcoding a filelog log_ = new FileLog(debugLogFilePath, new SessionID("ClientHandlerThread", clientId.ToString(), "Debug")); this.Id = clientId; socketReader_ = new SocketReader(tcpClient, socketSettings, this); }
public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings) { isDisconnectRequested_ = false; initiator_ = initiator; session_ = session; socketEndPoint_ = socketEndPoint; parser_ = new Parser(); if (socketEndPoint.AddressFamily == AddressFamily.InterNetwork) socket_ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); else { socket_ = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp); socket_.SetSocketOption(SocketOptionLevel.IPv6, (SocketOptionName)23, 10); } socket_.NoDelay = socketSettings.SocketNodelay; session_ = session; }
public SocketReader(TcpClient tcpClient, SocketSettings settings, ClientHandlerThread responder) : this(tcpClient, settings, responder, null) { }
/// <summary> /// Creates a ClientHandlerThread /// </summary> /// <param name="tcpClient"></param> /// <param name="clientId"></param> /// <param name="settingsDict"></param> /// <param name="socketSettings"></param> public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings) { string debugLogFilePath = "log"; if (settingsDict.Has(SessionSettings.DEBUG_FILE_LOG_PATH)) { debugLogFilePath = settingsDict.GetString(SessionSettings.DEBUG_FILE_LOG_PATH); } else if (settingsDict.Has(SessionSettings.FILE_LOG_PATH)) { debugLogFilePath = settingsDict.GetString(SessionSettings.FILE_LOG_PATH); } // FIXME - do something more flexible than hardcoding a filelog log_ = new FileLog(debugLogFilePath, new SessionID("ClientHandlerThread", clientId.ToString(), "Debug")); this.Id = clientId; socketReader_ = new SocketReader(tcpClient, socketSettings, this); }
private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(SessionSettings settings, SessionID sessionID) { QuickFix.Dictionary dict = settings.Get(sessionID); int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT)); SocketSettings socketSettings = new SocketSettings(); IPEndPoint socketEndPoint; if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST)) { string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST); IPAddress[] addrs = Dns.GetHostAddresses(host); socketEndPoint = new IPEndPoint(addrs[0], port); } else { socketEndPoint = new IPEndPoint(IPAddress.Any, port); } if (dict.Has(SessionSettings.SOCKET_NODELAY)) { socketSettings.SocketNodelay = dict.GetBool(SessionSettings.SOCKET_NODELAY); } AcceptorSocketDescriptor descriptor; if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor)) { descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict); socketDescriptorForAddress_[socketEndPoint] = descriptor; } return descriptor; }
public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings) { socketSettings_ = socketSettings; tcpListener_ = new TcpListener(serverSocketEndPoint); }
/// <summary> /// FIXME get socket options from SessionSettings /// </summary> /// <param name="client"></param> public static void ApplySocketOptions(TcpClient client, SocketSettings socketSettings) { client.LingerState = new LingerOption(false, 0); client.NoDelay = socketSettings.SocketNodelay; }
public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings) : this(serverSocketEndPoint, socketSettings, null) { }
private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(Dictionary dict) { int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT)); SocketSettings socketSettings = new SocketSettings(); IPEndPoint socketEndPoint; if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST)) { string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST); IPAddress[] addrs = Dns.GetHostAddresses(host); socketEndPoint = new IPEndPoint(addrs[0], port); // Set hostname (if it is not already configured) socketSettings.ServerCommonName = socketSettings.ServerCommonName ?? host; } else { socketEndPoint = new IPEndPoint(IPAddress.Any, port); } socketSettings.Configure(dict); AcceptorSocketDescriptor descriptor; if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor)) { descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict); socketDescriptorForAddress_[socketEndPoint] = descriptor; } return descriptor; }
public SocketReader(TcpClient tcpClient, SocketSettings settings, ClientHandlerThread responder) { tcpClient_ = tcpClient; responder_ = responder; stream_ = Transport.StreamFactory.CreateServerStream(tcpClient, settings, responder.GetLog()); }
public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict) { socketSettings_ = socketSettings; tcpListener_ = new TcpListener(serverSocketEndPoint); sessionDict_ = sessionDict; }
public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict) : this(serverSocketEndPoint, socketSettings, sessionDict, null) { }
public AcceptorSocketDescriptor(IPEndPoint socketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict) { socketEndPoint_ = socketEndPoint; socketReactor_ = new ThreadedSocketReactor(socketEndPoint_, socketSettings, sessionDict); }
/// <summary> /// Creates a ClientHandlerThread /// </summary> /// <param name="tcpClient"></param> /// <param name="clientId"></param> /// <param name="settingsDict"></param> /// <param name="socketSettings"></param> public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings) : this(tcpClient, clientId, settingsDict, socketSettings, null) { }
public AcceptorSocketDescriptor(IPEndPoint socketEndPoint, SocketSettings socketSettings) { socketEndPoint_ = socketEndPoint; socketReactor_ = new ThreadedSocketReactor(socketEndPoint_, socketSettings); }