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); } }
/// <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(); }
/// <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); } }
/// <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); } }