Подключение к IRC-серверу с использованием C # - PullRequest
2 голосов
/ 05 июля 2010

Я пробовал свои силы в минималистичном 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 для чтения и записи в это соединение.

Что еще мне нужноделать?

1 Ответ

3 голосов
/ 05 июля 2010

Сначала я предлагаю вам взглянуть на соответствующий RFC:

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

Посмотрите на регистрацию подключения.Чтобы установить соединение, выполните следующие действия:

  1. Пропустить сообщение
  2. Псевдоним
  3. Сообщение пользователя

отсутствует команда USER.

...