Установка версии клиента для Java irc bot

Я пытаюсь создать бот irc с Java. В настоящее время моя проблема в том, что я не могу подключить его к Quakenet. Я получаю сообщение «Возможно, ваш клиент несовместим с этим сервером». Это может быть просто потому, что я не установил версию клиента для этого бота. Как я могу это сделать?

Я знаю, что существуют библиотеки для создания irc-бота с помощью Java, но я хотел бы создать его с нуля, чтобы получить больше информации о нем.


person Kamsiinov    schedule 17.11.2016    source источник


Ответы (1)


Это означает, что сервер отправляет вашему клиенту сообщение с запросом его версии, а ваш клиент, если он вообще отвечает, не отвечает строкой, которая нравится серверу. Это не имеет никакого отношения к тому, какую программную библиотеку (или ее версию) вы используете.

Я бы рекомендовал прочитать RFC1459 (протокол IRC) и посмотреть необработанный трафик, который отправляется вашему клиенту, чтобы увидеть, что именно происходит. Как однажды сказал Йоги Берра: «Вы многое наблюдаете, просто наблюдая».

person Duston    schedule 17.11.2016
comment
Спасибо. Однако не могли бы вы уточнить это немного? Я не уверен, как я мог видеть больше трафика, поскольку я думаю, что сейчас пытаюсь вывести все на консоль. - person Kamsiinov; 18.11.2016
comment
В конечном счете, все, что вы делаете, это открываете сокет. Просто выводите на консоль все, что приходит из этого сокета (в дополнение ко всему, что вы с ним делаете). Вы увидите множество забавных вещей. Я написал бота с нуля много лет назад, но не могу найти исходный код. В моей последней работе использовалась библиотека pIRC. Это хорошо работает, но, поскольку вы хотите свернуть свой собственный, это вам не поможет. - person Duston; 18.11.2016
comment
Это тоже было решением. Кажется, что для подключения к сети IRC мне не нужно указывать какую-либо версию. Просто Ник и имя пользователя. В конце концов, все, что мне нужно, это: Socket socket= new Socket(server, 6667); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(soketti.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(soketti.getInputStream())); System.out.println("Starting login"); // Login to server bw.write("NICK " + nickname + "\r\n"); bw.write("USER " + login + " 8 * : robot\r\n"); bw.flush(); - person Kamsiinov; 19.11.2016