De que se trata o artigo

Este artigo ensina como criar um cliente telnet e também como utilizar expressões regulares e de modo geral como combinar estes conhecimentos para criar um bot que processa informações através da internet.

Para que serve

Bots são muito úteis para realizar diversas tarefas na internet. Neste artigo utilizamos um bot que se conecta com o cliente telnet do Free Internet Chess Server para poder jogar xadrez através da internet utilizando uma interface mais agradável, por exemplo, uma interface gráfica. Similarmente é possível criar bots para automatizar qualquer tarefa envolvendo telnet ou de modo geral envolvendo comunicação através da internet e a análise de texto com expressões regulares.

Como criar bots da internet usando telnet e expressões regulares em Pascal

LNet é uma das principais bibliotecas de sockets da linguagem Object Pascal. Ela fornece conexões não-bloqueantes o que facilita a escrita de programas, pois não é necessário criar linhas de execução separadas para tratar da comunicação por sockets. Esta biblioteca oferece suporte para os protocolos de envio de pacotes TCP e UDP e para os protocolos Telnet, HTTP, FTP, SSL e SMTP. Também há outras bibliotecas disponíveis para desenvolvedores Object Pascal, como Indy e Sinapse.

A classe TRegExpr é o método mais difundido para se utilizar expressões regulares na linguagem de programação Object Pascal. Esta biblioteca funciona igualmente bem com o Free Pascal e com o Delphi e recentemente ela foi relicenciada na licença LGPL com exceção de ligamento estático, que é a licença utilizada pelo Free Pascal e pelo Lazarus. Com isto foi possível incluí-la no Free Pascal e esta biblioteca estará no Free Pascal 2.6. Esta biblioteca utiliza a sintaxe do Perl para expressões regulares que é uma sintaxe poderosa e flexível.

O nicho de criação de bots da internet é amplamente dominado por linguagens de script, principalmente Perl e, por isso, a maioria dos tutoriais disponíveis são para estas linguagens crípticas. Bots da internet são aplicativos que realizam automaticamente tarefas que normalmente deveriam ser feitas por uma pessoa, tarefas que envolvem a conexão com um servidor na internet. O que poucos sabem é que também há bibliotecas poderosas para Pascal que permitem a criação desse tipo de aplicativo, com a vantagem adicional da sintaxe do Pascal ajudar a criar aplicativos mais rapidamente, pois os erros são encontrados na compilação, ao contrário de linguagens com tipos dinâmicos onde os erros aparecem somente na execução. Neste caso em particular vamos estudar a criação de um bot que se conecta via Telnet.

Telnet é um protocolo que permite se comunicar com um servidor por uma interface do tipo terminal de texto, que é similar ao console que qualquer ambiente UNIX possui. A diferença é que os comandos não são os comandos do UNIX, mas sim o que servidor fornecer. Essa interface foi desenvolvida para que pessoas possam se conectar ao servidor e executar comandos e ler dados, mas se tornou popular a criação de aplicativos que se comunicam com o servidor via Telnet e apresentam os dados para o usuário de uma forma mais amigável, por exemplo, através de uma interface gráfica com janelas.

Neste artigo estudaremos como utilizar a biblioteca de comunicação por rede lNet em conjunto com a biblioteca de expressões regulares do Sorokin para criar um aplicativo que se comunica via Telnet com o Free Internet Chess Server. O programa irá se comunicar com este servidor e apresentar os movimentos do xadrez através do programa fpChess.

Explorando o Telnet

Antes de começar, é indispensável saber como funciona o servidor ao qual vamos nos conectar. Para isso devemos utilizar um aplicativo para abrir uma conexão telnet com o servidor do Free Internet Chess Server. No Linux e no Mac OS X basta abrir o console e digitar “telnet freechess.org 5000”. No Windows, o mesmo procedimento pode ser feito, bastando abrir o programa de terminal “cmd.exe”.

Após fazer isto, logo irá se iniciar a conexão e seremos recebidos pelo servidor com um logo em arte ASCII, uma mensagem de boas vindas, com um prompt para inserir o nome de usuário que utilizaremos, como ilustra a Figura 1.

Tela de início do Free Internet Chess Server
Figura 1. Tela de início do Free Internet Chess Server

Após inserir o nome de usuário e pressionar enter, aparece uma mensagem pedindo para confirmar o nome de usuário e daí é necessário pressionar enter novamente. Após esse segundo enter é que realmente nos logamos no servidor e podemos executar comandos.

Os comandos principais são: “set seek 0”, que elimina um monte de mensagens de pessoas, procurando parceiros para jogar xadrez que aparecem por padrão; “set style 11”, que muda o estilo de jogo para o estilo número 11 (padrão) e, “match outrousuario 60 White”, que desafia um outro usuário a jogar uma partida de xadrez em que cada um terá 60 minutos de tempo e em que se joga com as brancas.

Estes comandos são suficientes para iniciarmos o jogo. Na Figura 2 pode-se ver a tela inicial do FICS após o login.

...
Quer ler esse conteúdo completo? Tenha acesso completo