Exemplo n.º 1
0
        private NetworkStream Connect()
        {            
            //Socket _Socket = Proxy.Socks5Connect("localhost", 9050, "irc.tambov.ru", 7770);
            _Socket = new TcpClient(host, port).Client;            
            _NetworkStream = new NetworkStream(_Socket);
            _NetworkStream.ReadTimeout = 10000;
            _NetworkStream.WriteLine(string.Format("NICK {0}", _Tags.Random())).Trace();
            _NetworkStream.WriteLine("USER " + _Tags.Random() + " " + _Tags.Random() + " server :" + _Tags.Random()).Trace();
            bool success = false;
            Thread _Thread = new Thread(delegate()
                {
                    try
                    {
                        while (true)
                        {
                            string s = _NetworkStream.ReadLine().Trace();
                            Match _Match = Regex.Match(s, @"PING \:(\w+)", RegexOptions.IgnoreCase);

                            if (_Match.Success)
                            {
                                _NetworkStream.WriteLine(("PONG :" + _Match.Groups[1]).Trace());
                            }
                            if (Regex.Match(s, @":.+? 005").Success) success = true;
                        }
                    }
                    catch (IOException) { }
                });
            _Thread.Start();
            _Thread.Join(5000);
            _Thread.Abort();
            if (!success) throw new ExceptionB("cannot connect to: " +host);
            _NetworkStream.WriteLine("codepage cp1251");
            Trace.WriteLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<Connected>>>>>>>>>>>>>>>>>>>>>>>>");
            return new NetworkStream(_Socket);
        }