這是代碼:我做了一個簡單的irc bot如何在加入頻道後向頻道發送消息?
private void connectToIrc()
{
//Connect to irc server and get input and output text streams from TcpClient.
nick = textBox1.Text;
owner = textBox2.Text;
server = textBox3.Text;
port = Convert.ToInt32(textBox4.Text);
chan = "#" + textBox5.Text;
sock.Connect(server, port);//server, port);
richTextBox1.Invoke((MethodInvoker)delegate
{
ColorText.AppendText(richTextBox1, "Server: ", Color.Green);
ColorText.AppendText(richTextBox1, server+" ", Color.Red);
ColorText.AppendText(richTextBox1, "Port: ", Color.Green);
ColorText.AppendText(richTextBox1, port.ToString() + Environment.NewLine + Environment.NewLine, Color.Red);
});
if (!sock.Connected)
{
Console.WriteLine("Failed to connect!");
return;
}
input = new System.IO.StreamReader(sock.GetStream());
output = new System.IO.StreamWriter(sock.GetStream());
//Starting USER and NICK login commands
output.Write(
"USER " + nick + " 0 * :" + owner + "\r\n" +
"NICK " + nick + "\r\n"
);
output.Flush();
//Process each line received from irc server
//buf = input.ReadLine();
while ((buf = input.ReadLine()) != null)
{
buf = buf + Environment.NewLine;
//Display received irc message
//Console.WriteLine(buf);
richTextBox1.Invoke((MethodInvoker)delegate
{
ColorText.AppendText(richTextBox1, buf,Color.Black);
});
if (buf.StartsWith("ERROR")) break;
//Send pong reply to any ping messages
if (buf.StartsWith("PING ")) { output.Write(buf.Replace("PING", "PONG") + "\r\n"); output.Flush(); }
if (buf[0] != ':') continue;
//After server sends 001 command, we can set mode to bot and join a channel
if (buf.Split(' ')[1] == "001")
{
output.Write(
"MODE " + nick + " +B\r\n" +
"JOIN " + chan + "\r\n" + "PRIVMSG " + chan + " :hello"
);
output.Flush();
}
buf = input.ReadLine();
}
}
我加入這部分的代碼:+「PRIVMSG」 +瓚+「:你好」 但它確實沒有什麼我沒有看到任何「你好」的通道。
我使用的例子在這個網站:
http://jakash3.wordpress.com/2012/02/13/simple-vb-net-and-csharp-irc-client/
的C#示例。
如何在加入某個通道後向該通道發送消息?我想發送一條消息,如果它的下一步工作是在隊列中添加消息,並且它們將被逐個自動發送。
我該怎麼辦?
Nickolay我做了:「JOIN」+ chan +「\ r \ n」+「PRIVMSG」+ chan +「:hello \ r \ n」在最後添加了\ r \ n,但我仍然沒有看到hello這個頻道。爲什麼? – DanielVest
如果我通過通道中的程序mirc鍵入當我進入服務器和通道中的另一個暱稱和類型時:jello然後在我的窗體上我的c#程序窗口我看到你好,但我想要做的是另一種方式。我希望它會自動將我的程序中的單詞hello發送到該通道,以便通道中的每個人都能看到單詞hello。現在,如果我輸入頻道,它會起作用:你好,只有我會在我的節目中看到它。我希望當我運行我的程序後,它連接到服務器,並進入通道它會自動發送一條消息到通道:大家好 – DanielVest
這PRIVMSG不是從我身邊發送到通道。它使得如果我輸入頻道:你好,然後我在我身邊看到你好。我想讓它從我的程序發送到頻道的單詞hello。因此,如果在頻道中有20人,他們都會看到Hello – DanielVest