é necessário utilizar sockets para uma aplicação cliente/servidor?

11 respostas
Z

Ola pessoal!

qual a real finalidade de um socket em uma aplicação cliente/servidor?
quais são seus beneficios?
é muito dificil implementar?

11 Respostas

G

Aproveitando o tópico,

Pessoal é realmente necessário numa rede corporativa a implementação de sockets em uma aplicação cliente\servidor ou simplesmente indicar o IP do banco e fazer a conexão?

até +.

P

Existe um excelente tutorial aqui no GUJ:

http://www.guj.com.br/java.tutorial.artigo.126.1.guj

Atualmente as empresas preferem usar web services, algo padronizado que consegue ser lido independente de linguagem, como os socktes, mas com certas vantagens.

Z

o tutotial é muito bom!
mas não responde as minhas perguntas! :slight_smile:

preciso de informações concretas!

poderiam me ajudar?

T

Usar “sockets” é necessário apenas quando você precisa usar um protocolo que não esteja já disponível.
Em uma aplicação cliente-servidor, usualmente você conecta-se ao banco de dados via um driver JDBC, que normalmente é uma biblioteca que usa sockets internamente com um protocolo específico do banco (exemplo: protocolo TDS para o MS SQL Server ou o Sybase).
Ou então a um provedor de web services, que normalmente usa o protocolo HTTP ou HTTPS.
Se o servidor for Java muitas vezes está disponível o RMI, que é um outro protocolo.

Ou seja, só é necessário usar sockets quando o protocolo que você precisa não está disponível. Por exemplo, se você quiser conectar-se ao MSN sem usar http.

Z

ai sim … hehheeh

em cima do pedido!

valei ai pela ajuda thingol

I

Normalmente usa-se sockets quando tem-se uma aplicação Desktop que precisa se comunicar com outra máquina. No caso você nao estará utilizando um browser para fazer requisições.

O RMI tbm é muito bom para comunicação em rede local.

Mas em minha opinião, uma aplicação J2EE é a melhor escolha para se trabalhar como cliente/servidor. Além de possuir muitos recursos e ferramentas auxiliares para ti desenvolver. Aplicação WEB é muito bom e rápido atualmente.

OBS: O link que o usuário pedrosa postou é bem explicativo e prático, acho que você pode dar uma olhada que irá te ajudar caso decida usar socket’s.

Z

ja li o tutoria e ele é realmente muito bom! acontece que minhas duvidas eram um tanto abstratas com relação a real utilidade dos sockets em aplicações cliente/servidor.

obrigado!

vc clareou ainda mais meus conceitos sobre sockets… :stuck_out_tongue:

G

Tb sempre tive este tipo de dúvida e ainda nao consegui saná-la.

Penso, numa aplicação cliente/servidor onde apenas uma máquina tenha acesso ao banco de dados ( a máquina servidora ) e os clientes fazem as solicitações para esta máquina, que então consulta o banco e devolve os resultados.

Acredito que com Sockets ou RMI seja possível, afinal esta é a lógica deste tipo de implementação, porém td que tenho lido a respeito me faz pensar que tanto Socket quanto RMI tornam o desenvolvimento muito complexo.

Acredito que deva existir alguma forma menos complexa de se fazer o mesmo.

Alguém poderia me indicar como ?

L

Olá

Com sockets pode usar o Grizzly, o Mina ou mesmo XSockets para escrever o lado servidor. Na verdade você nem precisa mexer diretamente com sockets pois os servidores escritos usando estas coisas se encarregam de sujar a mão de graxa com as tarefas de baixo nível. Outra alternativa bem mais fácil seria escrever um servlet e hospedar em um tomcat da vida.

Nesta arquitetura o protocolo usado deve ser HTTP. O Cliente deve ser escrito usando HttpClient e UrlConnection que também usam sockets por debaixo os panos. Outra alternativa seria usar o Apache-XML-RPC se bem que coisas com ranço de RPC tem alguns inconvenientes (RMI é RPC).

Resumindo: você não precisará usar diretamente sockets tanto no lado cliente como no servidor.

[]s
Luca

G

Luca, obrigado pela resposta. Está começando ficar mais claro.

Poderia me indicar algum material á respeito ?
É apenar para pegar o jeito da coisa.

Obrigado,

Gustavo

L

Olá

gustavo_marcon:
Poderia me indicar algum material á respeito ?
É apenar para pegar o jeito da coisa.

Comece trocando mensagens entre uma aplicação Swing e um servlet usando UrlConnection

A seguir use o HttpClient para facilitar o uso do UrlConnection. Procure por exemplos de REST usando HttpClient

Depois experimente o Apache XML-RPC só para ver como é fácil trocar mensagens em xml

[]s
Luca

Criado 3 de julho de 2007
Ultima resposta 6 de ago. de 2007
Respostas 11
Participantes 7