public ListenManager(string uris, int port, IRunner runner) { uri = new Sockets.Uri(uris); if ("ssl" == uri.Protocol) { var certfile = Executable.Relative("SharpTerminal.pfx"); certificate = new X509Certificate2(certfile, "none"); } input = new ConcurrentQueue <byte[]>(); output = new ConcurrentQueue <byte[]>(); listener = new TcpListener(IPAddress.Parse(uri.HostOrIp), port); listener.Start(); endpoint = listener.LocalEndpoint; accepter = Task.Factory.StartNew(AcceptLoop, TaskCreationOptions.LongRunning); }
public SocketManager(string uris, int port) { uri = new Sockets.Uri(uris); input = new ConcurrentQueue <byte[]>(); //standalone app may be closed anytime so long timeout socket = Sockets.ConnectWithTimeout(uri.HostOrIp, port, 1000); if ("tcp" == uri.Protocol) { stream = socket.GetStream(); } if ("ssl" == uri.Protocol) { stream = Sockets.SslWithTimeout(socket, 1000); } endpoint = socket.Client.RemoteEndPoint; socket.SendTimeout = 1000; reader = Task.Factory.StartNew(ReadLoop, TaskCreationOptions.LongRunning); }