Obrigado Mario e Jeronimo pelas dicas. O exemplo agora funciona perfeitamente.

Só para o caso de outros novatos em Chicken (como eu sou agora)
precisarem, aqui vai a lista de passos que usei para executar o
exemplo (eu uso Ubuntu 9.10):
0 - instale a extensão udp do chiken:
    sudo chicken-install udp
1 - crie um arquivo, que no meu caso chamei de exemplo.scm, com o
conteúdo abaixo:
(use udp)
(define s (udp-open-socket))
(udp-bind! s #f 0)
(udp-connect! s "localhost" 13)  ; daytime service
(udp-send s "\n")
(receive (n data from-host from-port) (udp-recvfrom s 64)
        (print* n " bytes from " from-host ":" from-port ": " data))
(udp-close-socket s)

2 - Abra o serviço daytime:
2.1 - Instale o xinetd:
     sudo apt-get install xinetd
2.2 - Abra o arquivo /etc/xinetd.d/daytime em algum editor de sua
preferência. Aqui vai o exemplo em emacs:
     sudo emacs /etc/xinetd.d/daytime
2.3 - Na terceira linha abaixo daquela com o comentário # This is the
udp version,
 substitua a opção
      disable = yes
 por
      disable = no
2.4 - Salve o arquivo e saia do editor.
2.5 - Reinicie o serviço:
     sudo invoke-rc.d xinetd reload

3 - Execute a linha abaixo:
     csi exemplo.scm

   e obterás, após as linhas de inicialização do Chicken, algo como

    26 bytes from 127.0.0.1:13: 27 APR 2010 15:23:22 BRT

Espero não ter chovido no molhado.

Alex


2010/4/27 Mario Domenech Goulart <[email protected]>:
> Alô Alex
>
> On Tue, 27 Apr 2010 14:36:46 -0300 Alexsandro Soares <[email protected]> 
> wrote:
>
>> Tentei seguir o exemplo dado no arquivo udp.scm e obtive o seguinte erro:
>>
>> ----------------------------------------------------------------------
>> CHICKEN
>> (c)2008-2010 The Chicken Team
>> (c)2000-2007 Felix L. Winkelmann
>> Version 4.4.0
>> linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
>> compiled 2010-04-27 on quadri (Linux)
>>
>> #;1> (require 'udp)
>> ; loading /usr/local/chicken-4.4.0/lib/chicken/5/udp.so ...
>> #;2> (define s (udp-open-socket))
>>
>> Error: unbound variable: udp-open-socket
>>
>>       Call history:
>>
>>       <syntax>                (define s (udp-open-socket))
>>       <syntax>                (##core#set! s (udp-open-socket))
>>       <syntax>                (udp-open-socket)
>>       <eval>          (udp-open-socket)       <--
>> ------------------------------------------------------------------------
>>
>> O que eu fiz de errado?
>
> O exemplo está errado.  Esta extensão deve ter sido portada da versão 3
> do compilador para a versão 4, e o exemplo não foi modificado.
>
> Tenta
>
>    (use udp)
>
> em vez de
>
>    (require 'udp)
>
> Pela cara do REPL que colocaste na mensagem, aparentemente estás
> usando-o "na pureza".  Recomendo a instalação da extensão readline e a
> inclusão do seguinte no teu arquivo ~/.csirc:
>
>  (use readline)
>  (current-input-port (make-gnu-readline-port "csi> "))
>  (gnu-history-install-file-manager
>   (string-append (or (getenv "HOME") ".") "/.csi.history"))
>
> Deve ajudar na edição de código no REPL.  Outra alternativa é usar o
> REPL dentro do Emacs, caso uses Emacs.
>
> Mario
> --
> http://parenteses.org/mario
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Lisp-br" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/lisp-br?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Lisp-br" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/lisp-br?hl=en.

Responder a