This is a very simple program that establishes a connection to irc server, joins a channel and greets every nick that joins. This can be very helpful for all of you irc addicts that want to make your own bot written in C# language.IrcBot.cs: using System;using System.Net;using System.Net.Sockets;using System.IO;using System.Threading; /* * This program establishes a connection to irc server, joins a channel and greets every nickname that* joins the channel.** Coded by Pasi Havia 17.11.2001 http://koti.mbnet.fi/~curupted*/ class IrcBot{// Irc server to connect public static string SERVER = "irc.df.lth.se";// Irc server's port (6667 is default port)private static int PORT = 6667; // User information defined in RFC 2812 (Internet Relay Chat: Client Protocol) is sent to irc server private static string USER = "USER CSharpBot 8 * :I'm a C# irc bot"; // Bot's nicknameprivate static string NICK = "BotNick"; // Channel to joinprivate static string CHANNEL = "#my_channel"; // StreamWriter is declared here so that PingSender can access itpublic static StreamWriter writer; static void Main (string[] args){ NetworkStream stream;TcpClient irc;string inputLine;StreamReader reader;string nickname; try{irc = new TcpClient (SERVER, PORT);stream = irc.GetStream ();reader = new StreamReader (stream);writer = new StreamWriter (stream); // Start PingSender threadPingSender ping = new PingSender ();ping.Start (); writer.WriteLine (USER);writer.Flush ();writer.WriteLine ("NICK " + NICK);writer.Flush ();writer.WriteLine ("JOIN " + CHANNEL);writer.Flush (); while (true){ while ( (inputLine = reader.ReadLine () ) != null ){if (inputLine.EndsWith ("JOIN :" + CHANNEL) ){// Parse nickname of person who joined the channelnickname = inputLine.Substring(1, inputLine.IndexOf ("!") - 1);// Welcome the nickname to channel by sending a noticewriter.WriteLine ("NOTICE " + nickname + " :Hi " + nickname + " and welcome to " + CHANNEL + " channel!");writer.Flush ();// Sleep to prevent excess floodThread.Sleep (2000);}} // Close all streamswriter.Close ();reader.Close ();irc.Close ();}}catch (Exception e){// Show the exception, sleep for a while and try to establish a new connection to irc serverConsole.WriteLine (e.ToString () );Thread.Sleep (5000);string[] argv = { };Main (argv);}}} PingSender.cs:using System;using System.Threading; /** Class that sends PING to irc server every 15 seconds*/class PingSender{static string PING = "PING :";private Thread pingSender;// Empty constructor makes instance of Threadpublic PingSender () {pingSender = new Thread (new ThreadStart (this.Run) ); } // Starts the threadpublic void Start () { pingSender.Start (); } // Send PING to irc server every 15 secondspublic void Run (){while (true){IrcBot.writer.WriteLine (PING + IrcBot.SERVER);IrcBot.writer.Flush ();Thread.Sleep (15000);}}}
Socket Programming
Portscanning for Kazaa using C# Sockets
Here, I fixed this up. I think the problem with that code is that its so old. Anyways, this is kinda hackish, and I'm pretty new to C#, but it connects and stays connected, and has the basic framework for adding more commands, etc to it. Let me know if it doesn't work on your server, and what the server is. I've only tested this on one server running Unreal3.2.8.1.
Tried this Using MS Visual Studio 2008 Pro on a Vista Home Premium 64 Bit Box. It connects, I can find it using /whois but it will not go to the specified channel.any help would be appreciated..
Wow. Could you post the things i would need for the: using System;using System.Net;using System.Net.Sockets;using System.IO;using System.Threading;
-Colt
Hi, i'm coding in vb2005. After i got connected to server. How do i specific which channel i sent message? I am using delegate too
could not connect.
error: can not read from a closed text reader.
please help!!!
EMAIL: vincecarter15x15@aol.com
Alternative Email: Punk123@myway.com
AIM: skatecrashrepeat
PLEASE HELP!!!