Esempio n. 1
0
        /// <summary>
        /// 接続
        /// </summary>
        /// <param name="server">サーバーデータ</param>
        /// <param name="user">ユーザーデータ</param>
        public void Connect(ServerInfo server, UserInfo user)
        {
            if (Status != IRCClientStatus.Disconnected)
            {
                throw new InvalidOperationException();
            }

            try
            {
                // 準備。
                m_server = server;
                m_user = user;
                m_online = false;
                m_threadStopFlag = false;
                lock (m_sendQueue) { m_sendQueue.Clear(); }
                lock (m_namelist) { m_namelist.Clear(); }

                // ソケット作成・接続
                Debug.WriteLine("接続を開始します。", "IRCClient");
                m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                if (Server.UseSsl)
                {
                    m_sslHelper = new SslHelper(m_socket, Server.Name);
                    m_sslHelper.ValidateCertEnabled = !Server.NoValidation;
                }
                m_connectAsync = m_socket.BeginConnect(server.GetEndPoint(), new AsyncCallback(OnConnected), m_socket);
            }
            catch
            {
                OnConnectionFailed();
                Close();
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 接続
 /// </summary>
 /// <param name="name">サーバー名</param>
 /// <param name="port">接続ポート</param>
 /// <param name="password">サーバーパスワード</param>
 /// <param name="user">ユーザーデータ</param>
 public void Connect(string name, int port, string password, UserInfo user)
 {
     Connect(new ServerInfo(name, port, password), user);
 }