2010-07-04 120 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命令。