Manter os sockets até o fim do trabalho ou descartar a cada uso

Estou construindo um sistema de ordenação que usa computação distribuída então para cada nó de ordenação eu mantenho um socket com o nó central, o que é mais eficiente e seguro, manter o socket até o nó central mandar fechar ou a cada chamada a nós de ordenação criar um novo socket?

Abrir enviar mensagem e fechar é mais seguro… sempre cria um novo socket, o fato de vc manter o socket aberto por muito tempo acaba facilitando a “invasão” da porta que estará aberta… fiz um sisteminha de chat esses dias com eles sempre aberto… no fim das contas acaba sendo ainda mais complicado lidar.

abraços

Criar e recriar o canal é pouco eficiente. Porém, manter o nó aberto consome recursos do nó central.

A resposta da sua pergunta está mais relacionada a quanta informação trafegará entre esses dois nós. Se for pouca, provavelmente é melhor abrir e fechar o socket. Se for muita, ou com muita frequencia, mantenha o nó aberto.

Quanto a segurança, tanto faz. Mas é mais simples implementar aplicações com o socket aberto o tempo todo, já que o controle de sessão fica feito através dessa conexão.

De onde você tirou essa informação? Uma vez estabelecida a conexão, a porta aberta do socket só se comunica com o IP que originou a conexão.
No caso do server, a porta se mantém aberta independente de ter ou não conexões rolando na aplicação.

Deixa eu adivinhar.
Fez um chat básico para faculdade e ainda usou um protocolo baseado em texto ao invés de um protocolo binário, certo?

Se você trabalhou com sockets usando o método “readLine()” do BufferedReader ou similares, ainda não sabe o que é fazer uma aplicação em rede.

De onde você tirou essa informação? Uma vez estabelecida a conexão, a porta aberta do socket só se comunica com o IP que originou a conexão.
No caso do server, a porta se mantém aberta independente de ter ou não conexões rolando na aplicação.

Deixa eu adivinhar.
Fez um chat básico para faculdade e ainda usou um protocolo baseado em texto ao invés de um protocolo binário, certo?

Se você trabalhou com sockets usando o método “readLine()” do BufferedReader ou similares, ainda não sabe o que é fazer uma aplicação em rede.[/quote]

  • Sim de fato é um chat básico, não para a faculdade… mas tenho orientação de professores para tal…
  • Sim não sei fazer aplicação em rede…
  • Não… não estou usando readline()… no começo estava sim, porém essa parte foi alterada por DataInputStream, e estou usando XML para a transmissão de dados, mensagem, destinatário, fonte, desconexão, etc…

Agora… não vou negar… vc, juntamente com o Marky, thingol… e vários outros eu vejo que são “os caras”… sabem demais, e eu apesar de ser novo no fórum, sou um leitor antigo, e sempre que vejo dicas suas e dos demais sempre procuro seguir e pesquisar bastante sobre o assunto…

Mas nada justifica seus argumentos para “rebaixar” uma pessoa que por mais que enganosamente venha até este fórum para fazer o possível para ajudar alguem, ainda mais como adm.
uma simples resposta me corrigindo já bastaria… ai já iria aprender com meus erros também. Agora depreciar uma idéia ou opinião, não é uma atitude digna vinda de um moderador…
qualquer coisa só me mandar um PM, porque uma continuação dessa conversa já irá fugir do assunto do tópico…

Desculpe, mas onde foi que rebaixei você?

Estava falando das informações equivocadas do seu posr e questionando a experiência pratica adquirida no tal sisteminha. Não sua competencia ou potencial.

Muito Obrigado aí pessoal, ajudou bastante.