public static TBuilder WithTcpTransport <TBuilder>(this TBuilder builder, string address, Action <SocketTransportSettings> options = null) where TBuilder : BaseConnectionBuilder { var settings = new SocketTransportSettings(ConnectionSide.Client); options?.Invoke(settings); builder.TransportFactory = new TransportFactory(address, SocketType.TCP, settings); return(builder); }
public static TBuilder AddTcpServer <TBuilder>(this TBuilder builder, string address, Action <SocketTransportSettings> options = null) where TBuilder : BaseServiceHostBuilder { var settings = new SocketTransportSettings(ConnectionSide.Server); options?.Invoke(settings); var listener = SocketTools.CreateTcpListener(address, settings, builder.LoggerFactory); builder.Listeners.Add(listener); return(builder); }
public static IListener CreateTcpListener(string address, SocketTransportSettings settings, ILoggerFactory loggerFactory) { if (address == null) { throw new ArgumentNullException(nameof(address)); } var uri = new Uri(address); if (uri.Scheme != "tcp" && uri.Scheme != Uri.UriSchemeNetTcp) { throw new Exception($"{nameof(address)} must be valid tcp:// or net.tcp:// address"); } return(new TcpListener(uri, settings, loggerFactory)); }