[Cascavel-pm] Re: IO::Socket e IO::Select

Luiz Gonzaga Pinto Jr junior3 em smagon.com.br
Sexta Janeiro 10 04:57:08 CST 2003


ok, Eduardo, entendi, mas a programação do servidor?

use IO::Socket;
my $sock = new IO::Socket(LocalPort => 2000, Listen => 30, Reuse, 1);
...

utiliza o IO::Select?
e como faz isso?

e na parte do cliente? utiliza o mesmo que acima? é essa minha dúvida... não
consegui entender direito ainda...


----- Original Message -----
From: "Ednardo Lobo" <ednardo em elobo.cjb.net>
To: <cascavel-pm em mail.pm.org>
Sent: Thursday, January 09, 2003 9:33 PM
Subject: [Cascavel-pm] Re: IO::Socket e IO::Select


> On Wed, Jan 08, 2003 at 10:04:49AM -0200, Luiz Gonzaga Pinto Jr wrote:
> > Olá, pessoal,
> >
>     Oi, tudo bom?
>
> > Sou novo  na lista. Espero poder  contribuir com ela sempre  com minha
> > pequena experiência em programação  Perl. Porém, meus conhecimentos em
> > perl são  bem resumidos,  isto é,  meus programas  têm um  formato bem
> > "arroz com feijão", padrão das primeiras versões do perl.
> >
>     Há sempre espaço para qualquer tipo de contribuição.
>
>     O importante é contribuir de alguma forma!
>
> > Tenho uma  grande dúvida.  Estou querendo  desenvolver um  servidor de
> > chat utilizando  conexões por sockets.  Existem esses dois  módulos do
> > perl (IO::Socket::INET e IO::Select), aos quais na Net apenas achei os
> > documentos padrões da perldoc para aprender. As sintaxes deles até não
> > é o problema.  O que não consegui foi como  aplicá-los num servidor de
> > chat e nos clientes. "O que uso onde?".
> >
> > Se  alguém souber  de alguma  documentação sobre  eles especificamente
> > para geração de servidores chat, me avisem, ok?
> >
>     Se o  que você pretende fazer,  é criar um servidor  e cliente CHAT,
> aconselho você dar uma olhada nas primitivas em C das seguintes funções:
> socket, connect,  bind, listen, accept.  Elas se relacionam  da seguinte
> forma, dependendo do protocolo utilizado:
>
> # SOCKET INTERFACE
>
>     - TCP
>
>               Servidor
>
>             +----------+
>         +-- | socket() |
>         |   +----------+
>         |
>         +-> +--------+
>             | bind() |
>         +-- +--------+                  Cliente
>         |
>         +-> +----------+              +----------+
>             | listen() |              | socket() | --+
>         +-- +----------+              +----------+   |
>         |                                            |
>         +-> +----------+                             |
>             | accept() |                             |
>         +-- +----------+                             |
>         |                                            |
>         |                            +-----------+ <-+
>         |  <------------------------ | connect() |
>         |                            +-----------+ --+
>         |                                            |
>         +-> +--------+                 +---------+ <-+
>             | read() | <-------------- | write() |
>         +-- +--------+                 +---------+ --+
>         |                                            |
>         |   +---------+                 +--------+   |
>         +-> | write() | --------------> | read() | <-+
>             +---------+                 +--------+
>
>
>     - UDP
>
>              Servidor                   Cliente
>
>             +----------+              +----------+
>         +-- | socket() |              | socket() | --+
>         |   +----------+              +----------+   |
>         |                                            |
>         +-> +--------+                  +--------+ <-+
>             | bind() |                  | bind() |
>         +-- +--------+                  +--------+ --+
>         |                                            |
>         +-> +------------+            +----------+ <-+
>             | recvfrom() | <--------- | sendto() |
>         +-- +------------+            +----------+ --+
>         |                                            |
>         |   +----------+            +------------+   |
>         +-> | sendto() | ---------> | recvfrom() | <-+
>             +----------+            +------------+
>
>
>     O entendimento dessas primitivas, ajudará bastante na compreensão do
> funcionamento da lib `IO::Socket::INET'.
>
>     Boa sorte!!
>
> > Obrigado, por hora.
> >
>     Disponha!
>
> --
>     Ednardo Lobo - www.elobo.cjb.net
>
> --
> taxidermist, n.:
> A man who mounts animals.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em mail.pm.org
> http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.441 / Virus Database: 247 - Release Date: 09/01/2003





Mais detalhes sobre a lista de discussão Cascavel-pm