Ejemplo n.º 1
0
 public TcpPeerFactory(NetworkConfig config, ProtocolSelector protocolSelector, ILogger <TcpPeerFactory> logger, ILogger <TcpPeer> peerLogger)
 {
     _forceIPv6        = config.ForceIPv6;
     _protocolSelector = protocolSelector;
     _logger           = logger;
     _peerLogger       = peerLogger;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="config">Configuration</param>
        /// <param name="protocolSelector">Protocol selector</param>
        /// <param name="logger">TcpPeerFactory Logger</param>
        /// <param name="peerLogger">TcpPeer logger</param>
        public TcpPeerFactory(
            NetworkConfig config,
            ProtocolSelector protocolSelector,
            ILogger <TcpPeerFactory> logger,
            ILogger <TcpPeer> peerLogger)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            _forceIPv6        = config.ForceIPv6;
            _protocolSelector = protocolSelector ?? throw new ArgumentNullException(nameof(protocolSelector));
            _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
            _peerLogger       = peerLogger ?? throw new ArgumentNullException(nameof(peerLogger));
        }
Ejemplo n.º 3
0
        public TcpPeer(Socket socket, ProtocolSelector protocolSelector, ILogger <TcpPeer> logger)
        {
            _socket           = socket ?? throw new ArgumentNullException(nameof(socket));
            _protocolSelector = protocolSelector ?? throw new ArgumentNullException(nameof(protocolSelector));
            _logger           = logger ?? throw new ArgumentNullException(nameof(logger));

            _stream   = new NetworkStream(socket, true);
            _protocol = protocolSelector.DefaultProtocol;

            // Extract address

            IPEndPoint ep = (IPEndPoint)(socket.IsBound ? socket.RemoteEndPoint : socket.LocalEndPoint);

            IPAddress = ep.Address;
            EndPoint  = new EndPoint()
            {
                Protocol = Protocol.Tcp, Host = ep.Address.ToString(), Port = ep.Port
            };

            SendMessages(_messageSenderTokenSource.Token);
        }