Beispiel #1
0
        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);
            }
        }
Beispiel #2
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();
 }
Beispiel #3
0
 /// <summary>
 /// Connect to the IRC server and start listening for messages
 /// on a new thread.
 /// </summary>
 /// <exception cref="SocketException">If a connection cannot be established with the IRC server</exception>
 public void Connect()
 {
     lock (this)
     {
         if (connected)
         {
             throw new InvalidOperationException("Connection with IRC server already opened.");
         }
         client = new TcpClient();
         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);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Connect to the IRC server and start listening for messages
 /// on a new thread.
 /// </summary>
 /// <exception cref="SocketException">If a connection cannot be established with the IRC server</exception>
 public void Connect()
 {
     lock (this)
     {
         if (connected)
         {
             throw new Exception("Connection with IRC server already opened.");
         }
         Debug.WriteLineIf(Rfc2812Util.IrcTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] Connection::Connect()");
         client = new TcpClient();
         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);
     }
 }