Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

Книга Д. Колисниченко IRC, IRC-каналы, IRC-боты: как пользоваться и как сделать самому. Избранные технологии Интернета

13.4. Java

13.4.1. Простой бот

Особенность Java заключается в ее кроссплатформенности: апплет Java вы можете запустить на любой платформе, для которой создана виртуальная машина Java. Конечно, за все нужно платить. Во-первых, мы теряем производительность, но в нашем случае мы не разрабатываем систему реального времени, а всего лишь небольшой бот. По сравнению с откомпилированными на C программами апплеты Java выглядят настоящими черепашками, но опять-таки в нашем случае все нормально. Какая разница, сколько займет та или иная операция - 0,5 секунды или 0,05 секунды, если результат выполнения этой операции передается по каналам Интернета 1-2, а может и 5 секунд? Поэтому особенно можно не беспокоиться. Во-вторых, поскольку Java-апплеты выполняются в виртуальной машине, они несколько ограничены в своих действиях - они не могут выйти за пределы "песочницы", то есть могут выполнять только разрешенные виртуальной машиной действия. Но опять-таки, в нашем случае все нормально - ведь виртуальная машина предоставляет доступ к ресурсам сети и к базам данным (через JDBC), которые могут нам понадобиться при разработке серьезных ботов.

Если вы программируете в Windows, вам нужно скачать с сайта http://www.sun.com/download/ виртуальную Java-машину для Windows. Если же у вас Linux, то вам повезло больше - все необходимое входит в состав Linux и, скорее всего, уже установлено. На всякий случай запустите свой менеджер пакетов и просмотрите, какие пакеты, связанные с Java не установлены (вам нужно произвести поиск по именам доступных для установки пакетов, содержащих в названии слово 'java'). Но обычно будет установлено все, что надо (при условии, что при установке системы вы не отказались от установки пакетов из группы Разработка (Программирование)).

Еще раз повторюсь: в этой книге мы не рассматриваем какой-либо язык программирования. Для этого мы и пишем боты на трех языках программирования, чтобы вы смогли написать бот на знакомом вам языке программирования.

Создайте в своем домашнем каталоге подкаталог Jbot, а в нем - файл jbot.java следующего содержимого:

import java.io.*;

import java.net.*;

// класс JBot

public class JBot {

 public static void main(String[] args) throws Exception {

 

// имя сервера

  String server = "localhost";

// подключаемся к localhost, порт 6667   

  Socket sock = new Socket(server, 6667);

// для записи в сокет и чтения из него мы будем использовать объект

// "писателя" (wr) и объект "читателя" (rd)

  BufferedWriter wr = new BufferedWriter(new

                    OutputStreamWriter(sock.getOutputStream()));

  BufferedReader rd = new BufferedReader(new

                    InputStreamReader(sock.getInputStream()));

 

// записываем в сокет ник и информацию о пользователе

  wr.write("NICK jbot\r\n");

// после двоеточия должно быть несколько слов!

  wr.write("USER jbot 8 * :Dens Java Bot\r\n");

// сбрасываем содержимое буфера ввода/вывода - информация 100%

// будет передана в сокет

  wr.flush();

  

  String messages = null;

// читаем ответ сервера

  while ((messages = rd.readLine()) != null) {

 

// выводим на консоль прочитанное сообщение

   System.out.println(messages);

   

// если сообщение содержит строку "004", значит, мы зарегистрированы

// если в выводе сервера есть строка "433" - наш бот уже запущен

// (указанный нами ник уже используется)

    if (messages.indexOf("004") >= 0) {

    System.out.println("Registered!\r\n");

    break; }

    else if (messages.indexOf("433") >=0 ) {

      System.out.println("Bot is already run!");

      return;

      }

      }

     

// подключаемся к каналу #Den

      wr.write("JOIN #Den\r\n");

      wr.flush();

     

// в цикле обрабатывает PING-PONG, чтобы сервер не отключил нас

// а также выводим все полученные от сервера сообщения (а именно -

// сообщения других пользователей)

      while ((messages = rd.readLine()) != null) {

        if (messages.toLowerCase().startsWith("PING ")) {

        wr.write("PONG "+messages.substring(5)+"\r\n");

        wr.write("PRIVMSG #Den :I send PONG!\r\n");

        wr.flush();

      }

      else System.out.println(messages); // выводим сообщения

      }

  } 

}

Для компилирования исходного кода Java-апплета выполните команду:

javac jbot.java

 

В результате компиляции будет создан файл апплета JBot.class (файл создается по имени класса, а не по имени файла, содержащего исходный текст). Теперь запустим наш бот:

java JBot

 

Результат выполнения сценария показан на рисунках 13.8 и 13.9.

Рис. 13.8. JBot в процессе работы

Рис. 13.9. JBot в окне XChat

 

13.4.2. Бот на базе PircBot

Должен вас обрадовать: разработка бота с помощью PircBot еще более проста, чем с помощью Net::IRC и SmartIRC (который мы рассмотрим в следующем пункте). Поэтому если вы для себя выбрали Java, вы не пожалеете. PircBot можно скачать по адресу:

 

http://www.jibble.org/pircbot.php

 

Скачайте архив, содержащий PircBot. Распакуйте его в какой-то каталог - в нем будет самый важный файл - pircbot.jar. В этом же каталоге создайте файл JBot2.java:

 

import org.jibble.pircbot.*;

 

// наш класс JBot2 является производной класса PircBot

public class JBot2 extends PircBot {

 

// конструктор

  public JBot2() {

    // устанавливаем название бота

    this.setName("JBot2");

  }

 

  // обработчик полученного сообщения канала

  public void onMessage(String channel, String sender, String login,

                        String hostname, String message) {

     

      if (message.equalsIgnoreCase("hello"))

            sendMessage(channel, sender + ":Hi!!!");

  }

}

 

Думаю, данный файл в особых комментариях не нуждается. Сначала мы создаем производный (дочерний) класс JBot. Родительским классом, ясное дело, является PircBot. После этого переопределяем некоторые методы этого класса. Конструктор нашего класса устанавливает название нашего бота - JBot2. Далее мы переопределяем обработчик сообщения - onMessage. Мы сравниваем наше сообщение со строкой "hello": если мы получили такое сообщение, то мы отправляем его отправителю сообщение "Hi!!!". Видите, мы уже научили наш бот здороваться. Если вам нужно вывести полученное сообщение на консоль, добавьте в обработчик onMessage следующий оператор:

System.out.println(message);

 

Аналогично можно вывести на консоль другие параметры обработчика onMessage:

Но, как вы заметили, это еще не все. Ведь мы не указали даже к какому серверу нужно подключаться! В этом же каталоге создайте еще один файл - Main.java:

 

import org.jibble.pircbot.*;

 

public class Main {

 

      public static void main(String[] args) throws Exception {

     

      // создаем объект класса JBot2

      JBot2 my_bot = new JBot2();

      // включаем вывод отладочных сообщений

      my_bot.setVerbose(true);

      // подключаемся к серверу

      my_bot.connect("localhost",6667);

      // заходим на канал #Den

      my_bot.joinChannel("#Den");

      }

}

Вот теперь - полный порядок. Осталось все это дело скомпилировать и запустить. Для компиляции проекта в Windows введите команду:

javac -classpath .;pircbot.jar *.java

Если у вас Linux, введите другую команду:

javac -classpath pircbot.jar:. *.java

Запускается наш бот командой (для Windows-пользователей):

java -classpath pircbot.jar;. Main

 

Для Linux:

 

java -classpath pircbot.jar:. Main

 

Примечание. Разница в командах обусловлена различными разделителями. В Windows используется точка с запятой (;), а в Linux - двоеточие (:)

Нужно отметить, что с использованием PircBot написано очень много популярных ботов, например, ChoonBot (http://www.jstott.me.uk/choonbot), предоставляющий доступ к вашему Winamp'у. Список различных реализаций PircBot'а вы найдете на страничке http://www.jibble.org/pircbot-implementations.php.mp'тавляющий доступ к вашему ример, и разделителями. В ровать и запустить. ужно подключатться"ськие пакеты, связанн

На главную

Мне нравится!

Сегодня: 19/01

Поздравлять сегодня некого

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

Ubuntu Linux 7.04. Руководство пользователя (+DVD)Ubuntu Linux 7.04. Руководство пользователя (+DVD)
Издание ориентировано на начинающего пользователя операционной системы Linux и поможет читателю освоить Ubuntu Linux самостоятельно. Рассматривается Ubuntu 7.04 Feisty Fawn                                                                                                                                 

Серверное применение Linux, 2 изд. Серверное применение Linux, 2 изд.
Для администраторов Linux описана настройка различных типов серверов: Web, FTP, DNS, DHCP, почтового сервера, сервера баз данных. Подробно рас-смотрена установка и тонкая настройка операционной системы. Описана настройка связки Apache + MySQL + PHP.                                                    

Linux на ноутбукеLinux на ноутбуке
Книга ориентирована на начинающего пользователя Linux, покупающего ноутбук с предустановленной ОС Linux или планирующего установить ее самостоятельно. Содержит актуальный материал (даже по состоянию на 2011 год)                                                                                          

PHP

Профессиональное программирование на PHPПрофессиональное программирование на PHP
Книга рассчитана на программистов, уже освоивших азы программирования на PHP. Приводятся сведения об отладке, анализе и оптимизации кода                                                                                                                                                                     

HTML 5 & CSS 3 - практическо програмиране за начинаещиHTML 5 & CSS 3 - практическо програмиране за начинаещи
Тази книга ще ви научи как да прилагате на практика HTML 5 и CSS 3 и да се възползвате от богатите възможности, предлагани в новите уеб стандарти. Изданието е предназначено за всеки, който е решил да се възползва от съвременните технологии за уеб диз                                                   

PHP 5 в теории и на практикеPHP 5 в теории и на практике
Это продолжение Самоучителя PHP5 с новыми приемами программирования на PHP. Отличный выбор для начинающего PHP-программиста. Книга устарела и не поддерживается.                                                                                                                                            

Интернет/CMS

Drupal 7. Руководство пользователяDrupal 7. Руководство пользователя
Эта книга — простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Drupal версии 7.0                                                                                                                                                                       

Новейший самоучитель компьютера и ИнтернетНовейший самоучитель компьютера и Интернет
О такой книге долгие годы мечтали миллионы начинающих пользователей, которые осваивали технику самостоятельно или по непонятным, громоздким руководствам.                                                                                                                                                    

Joomla 1.5.15/1.6.0. Руководство пользователяJoomla 1.5.15/1.6.0. Руководство пользователя
Эта книга — простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Joomla 1.5.15/1.6. Отличное руководство для начинающих                                                                                                                                  

Компьютер/Windows

Англо-русский словарь компьютерных терминов, изд. 1-3Англо-русский словарь компьютерных терминов, изд. 1-3
Словарь-справочник включает в себя все основные термины, встречающиеся при работе с компьютером, программами и компьютерной документацией.                                                                                                                                                                   

Самоучитель Microsoft Windows 8Самоучитель Microsoft Windows 8
Описаны основные нововведения в Windows 8, особое внимание уделено использованию системы на планшете. Рассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет), так и на виртуальный (VMware, Virtual Box).                                                        

Секреты реестра Windows XP/VistaСекреты реестра Windows XP/Vista
Описано устройство реестра операционных систем Windows XP/Vista. Реестр этих двух версий Windows похож, но не одинаков, поэтому в книге особо выделены функции, доступные только в XP и доступные только в Vista.                                                                                            

Сети

Самоучитель системного администратора. 4-е изд.Самоучитель системного администратора. 4-е изд.
Изложены основные задачи системного администрирования, описаны базовые протоколы, даны рекомендации по выбору оборудования и проведению ежедневных рутинных операций. Подробно раскрыты технологии, используемые при построении информационных систем, опи                                                   

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

Новичок за рулем. Советы психолога, юриста, инструктора.Новичок за рулем. Советы психолога, юриста, инструктора.
Книга первая. Рекомендуется всем начинающим водителям. Текст этой книги бесплатно доступен в моем блоге http://dkws.net                                                                                                                                                                                      

Новичок за рулем 2. Выбор автомобиля, дальняя поездка...Новичок за рулем 2. Выбор автомобиля, дальняя поездка...
Книга вторая. Желательно прочтение первой книги. Рекомендуется всем начинающим (и не только) водителям/ . Текст этой книги бесплатно доступен в моем блоге http://dkws.net                                                                                                                                   

Перед покупкой авто. Все, что необходимо знать покупателюПеред покупкой авто. Все, что необходимо знать покупателю
Книга отвечает на все вопросы, которые нужно прояснить для себя перед...                                                                                                                                                                                                                                     

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Статьи

Rambler's Top100