2010-07-04 133 views
2

我一直在尝试我的手在简约IRC机器人,但我永远无法获得连接工作。使用C#连接到IRC服务器

我正在通过一个TcpClient对象来做到这一点,我已经看到在其他这样的项目中使用过这些对象,这些对象据说工作正常。

这是代码。

private string server = "irc.freenode.net"; 
private int port = 6667; 
private string nick = "testingsharpbot"; 
private string channel = "testblablabla"; 

private TcpClient irc; 

public ConfigForm() { 
    InitializeComponent(); 
} 

private void ConnectButton_Click(object sender, EventArgs e) { 
    this.irc = new TcpClient(this.server, this.port); 

    using(NetworkStream stream = irc.GetStream()){ 
     using(StreamReader sr = new StreamReader(stream)) { 
      using(StreamWriter sw = new StreamWriter(stream) {NewLine = "\r\n", AutoFlush = true}) { 
       sw.WriteLine("NICK " + this.nick); 
       sw.WriteLine("JOIN " + this.channel); 
      } 
     } 
    } 
} 

所以我稍等一下,然后在昵称上做一个/ whois,但我总是得到相同的回复:用户不存在。

据我所知,TcpClient使连接,然后我可以使用NetWorkStream实例读取和写入该连接。

我还需要做什么?

回答

3

起初,我建议你在此时,相应的RFC考虑看看:

http://www.faqs.org/rfcs/rfc2812.html

看Connection注册。您需要按照这个步骤来获取连接:

  1. 通过的消息
  2. 尼克消息
  3. 网友留言

你错过了USER命令。