// Send PING to irc server every 15 seconds public void Run() { while (true) { _outputInterface.WriteLine(string.Format("PING :{0}", _server)); Thread.Sleep(15000); } }
public void Initialize() { Console.WriteLine("Initialize Connection"); string inputLine = null; #if !DEBUG try { #endif using (var irc = new TcpClient(_server, _port)) { var stream = irc.GetStream(); var reader = new StreamReader(stream); _outputInterface.SetInterface(new StreamWriter(stream)); // Start PingSender thread var ping = new PingSender(_outputInterface, _server); ping.Start(); _outputInterface.WriteLine(User); _outputInterface.WriteLine("NICK " + _username); _outputInterface.WriteLine("JOIN " + _channel); while (true) { while ((inputLine = reader.ReadLine()) != null) { Debug.WriteLine(inputLine); var garbage = inputLine.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); if (garbage.Length > 1) { var ircMessage = IrcMessage.ParseInput(inputLine); foreach (var responder in _responders) { if (responder.HasResponse(ircMessage)) { var responses = responder.GetResponse(ircMessage); if (responses != null) { foreach (var response in responses) { Console.WriteLine("Input: {0}", inputLine); Console.WriteLine("Response: {0}", response); _outputInterface.WriteLine(response); } } } } } } // Close all streams _outputInterface.Close(); reader.Close(); irc.Close(); } } #if !DEBUG } catch (Exception ex) { Console.WriteLine(ex); Console.WriteLine("Source: {0}", inputLine); Initialize(); } #endif }