GetStream() 공개 메소드

Returns the stream used to send and receive data.
The has been closed. The SecureTcpClient is not connected to a remote host.
public GetStream ( ) : Org.Mentalis.Security.Ssl.SecureNetworkStream
리턴 Org.Mentalis.Security.Ssl.SecureNetworkStream
예제 #1
0
        public void Connect(string hostname, int port, bool ssl)
        {
            try {
            Host = hostname;
            Port = port;
            Ssl = ssl;

            var protocol = ssl ? SecureProtocol.Tls1 | SecureProtocol.Ssl3 : SecureProtocol.None;
            SecurityOptions options = new SecurityOptions(protocol);
            options.Certificate = null;
            options.Entity = ConnectionEnd.Client;
            options.CommonName = hostname;
            options.VerificationType = CredentialVerification.Auto;
            options.Flags = SecurityFlags.Default;
            options.AllowedAlgorithms = SslAlgorithms.SECURE_CIPHERS;

            //_Connection = new TcpClient(hostname, port);
            _Connection = new SecureTcpClient(hostname, port, options);
            _Stream = _Connection.GetStream();

            _Reader = new StreamReader(_Stream, System.Text.Encoding.Default);
            string info = _Reader.ReadLine();
            OnConnected(info);

            IsConnected = true;
            Host = hostname;
              } catch (Exception) {
            IsConnected = false;
            throw;
              }
        }
예제 #2
0
		/// <summary>
		/// Opens the stream
		/// </summary>
		public override void Open()
		{
			SecurityOptions opts = null;
			if(secured)
			{
				opts = new SecurityOptions(SecureProtocol.Tls1);
				opts.Protocol = SecureProtocol.Tls1;
				opts.Certificate = null;
				opts.AllowedAlgorithms = SslAlgorithms.SECURE_CIPHERS;
				opts.VerificationType = CredentialVerification.Manual;
				opts.Verifier = new CertVerifyEventHandler(stream_OnCertVerify);
				opts.Flags = SecurityFlags.Default;
			}
			else 
			{
				opts = new SecurityOptions(SecureProtocol.None);
			}
			SecureTcpClient cli = new SecureTcpClient(hostname, port, opts);
			stream = cli.GetStream();
		}
예제 #3
0
 /// <summary><see cref="Ch.Elca.Iiop.IClientTranport.OpenConnection/></summary>
 public void OpenConnection() {
     if (IsConnectionOpen()) {
         return; // already open
     }
     m_socket = new SecureTcpClient(m_options);
     if (m_targetHostIp != null) {
         m_socket.Connect(m_targetHostIp, m_port);
     } else if (m_targetHost != null) {
         m_socket.Connect(m_targetHost, m_port);
     } else {
         throw new INTERNAL(547, CompletionStatus.Completed_No);
     }
     m_socket.NoDelay = true; // send immediately; (TODO: what is better here?)
     m_socket.ReceiveTimeout = m_receiveTimeOut;
     m_socket.SendTimeout = m_sendTimeOut;
     m_stream = m_socket.GetStream();
 }
예제 #4
0
 public SslServerTransport(SecureTcpClient theClient) {
     m_socket = theClient;
     m_stream = m_socket.GetStream();
 }
예제 #5
0
파일: Connection.cs 프로젝트: Jakosa/alaris
        private void ConnectClient( SecureProtocol protocol )
        {
            lock ( this )
            {
                if( connected )
                {
                    throw new Exception("Connection with IRC server already opened.");
                }
                Debug.WriteLineIf( Rfc2812Util.IrcTrace.TraceInfo,"[" + Thread.CurrentThread.Name +"] Connection::Connect()");

                    SecurityOptions options = new SecurityOptions( protocol );
                    options.Certificate = null;
                    options.Entity = ConnectionEnd.Client;
                    options.VerificationType = CredentialVerification.None;
                    options.Flags = SecurityFlags.Default;
                    options.AllowedAlgorithms = SslAlgorithms.SECURE_CIPHERS;
                    client = new SecureTcpClient( options );
                    client.Connect( connectionArgs.Hostname, connectionArgs.Port );

                connected = true;
                writer = new StreamWriter( client.GetStream(), TextEncoding );
                writer.AutoFlush = true;
                reader = new StreamReader(  client.GetStream(), TextEncoding );
                socketListenThread = new Thread(new ThreadStart( ReceiveIRCMessages ) );
                socketListenThread.Name = Name;
                socketListenThread.Start();
                sender.RegisterConnection( connectionArgs );
            }
        }