PplWare Mobile

Sockets: Vamos programar um servidor que diz as horas

Download

Download:Sockets

                                    
                                

Este artigo tem mais de um ano


Autor: Pedro Pinto


  1. jedi says:

    também podes utilizar sockets através do html5 ( websockts.) 😉

    http://www.html5rocks.com/en/tutorials/websockets/basics/

  2. M3mn0t says:

    Muito simples, mas muito intuitivo. Continuem com este tipo de iniciativa.

  3. zee says:

    Grande iniciativa Pedro Pinto 🙂

    Já agora, um reparo. O objecto PrintWriter também implementa a interface ‘Closeable’, portanto, faltaria fechar o mesmo (código do servidor). A seguir ao print, faltaria ‘out.close();’., para limpar os recursos associados ao printwriter. Sei que neste caso em específico não é algo que seja preocupante. Mas o meu comentário é no sentido de completar o artigo.

    Cumprimentos

  4. Xinuo says:

    Faltou um linha de import no código do servidor, creio que não aparece no print da tela, pois ficou escondida.

    import java.io.IOException;

    Deveriam ter cortado o rodapé da janela, ou melhor, deveria haver links com os fontes para baixar facilmente. Se bem que, para iniciantes, é bom digitar mesmo.

  5. apache says:

    “Servidor” java da treta!

    Era muito mais simples e reutilizável vocês usarem o xinetd (por exemplo):

    service ppltime {
    disable = no
    socket_type = stream
    port = 65333

    user = pi (ou o que quiserem)
    server = /bin/date
    }

    E pronto. Sim, cria um processo por cada conexão, que é como Deus quis, mas um utilizador não pode deitar o servidor inteiro abaixo!

    • Fork says:

      Mil clientes e CABUM ! Não escala esse modelo 😀
      Se gostas desse tipo de paradigma eu sugeria dares uma vista de olhos no Modelo de Atores, que é o que o WhatsApp usa e é impressionante como conseguem manter um serviço destes com menos de 50 engenheiros!

      • Xinuo says:

        Cono assim não escala! O comando date com certeza vai se mais rápido, ocupar menos memória, em fim, pesar menos para o SO. Mas o objetivo do post não é resolver o problema de maneira ótima, mas ensinar como utilizar sockets num programa.

      • apache says:

        CABUM nada!

        Com o xinetd, podes limitar o número de clientes simultâneos, o número de conexões por segundo, etc.

        Aposto que abrir um processo nativo Linux, e correr código… C… é mais rápido que correr um servidor multithreaded Java (que esse exemplo, não é), já para não falar que tens que implementar rate limiting e etc. à mão!!!

        Eu sei o que é o modelo de actores, já programei várias coisas em node.js, mas lá está depende de quantos clientes tens, e de quanto tempo tens para o projeto, das tuas necessidades de alterar o código, etc…

  6. Hugo Durana says:

    Muito boa a iniciativa, continuem assim

  7. Carlos Abreu says:

    Continuem com este tipo de iniciativas!

  8. Gilberto Moraes says:

    O exemplo mostra Linux conversando com Linux. Existe alguma diferença se for Linux conversando com Windows?

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.