ola pessoal,
estou trabalhando no meu primeiro projeto Java, já passei por bastantes obstáculos, agora antes de encarar mais um queria tirar algumas dúvidas para direcionar melhor as minhas pesquisas.
Meu sistema trabalhara com sockets, e terá uns 100 clientes conectando e desconectando umas 3 vezes por minuto, a quantidade de informações transferidas será bem pequena, questão de 150 bytes, estou utilizando o mysql pra salvar as informações. Vamos as dúvidas:
Qual a melhor forma de criar minhas threads, implements Runnable ou extends thread? Qual a diferença na prática?
Qual a melhor forma de controlar as minhas threads? Usando ThreadGroup?
Qual a melhor maneira de controlar os dados de E/S usar
BufferedReader entrada = new BufferedReader(new InputStreamReader(XXX.getInputStream()));
PrintStream saida = new PrintStream(XXX.getOutputStream());
ou tem uma forma melhor?
Como controlar uma conexão q deu erro? Usar o setSoTimeout()?
Espero várias dicas ai do pessoal da antiga! Que sempre estão ajudando a galera iniciante que eu faço parte.
Desde já obrigado.
Se os seus clientes estiverem em uma intranet (não internet ou extranet), você pode usar UDP em vez de TCP, já que a informação é sempre pequena.
Nesse caso, você pode usar poucas threads - não é necessário ter uma por cliente.
Não use ThreadGroup - o melhor é usar alguma coisa de java.util.concurrent.
ola thingol,
os clientes estarão c conectando pela internet tambem!
dai c tornou necessário o uso de TCP.
tem algum artigo com um exemplo básico pra mim dar uma olhada??
c pocivel posta ele, pra outros q pesquisarem no fórum…
tem alguma outra dica? Pra melhorar o desempenho? Quero começar a fazer pela forma correta!
Desde já obrigado.
Pela internet também? Use web services 
Na realidade os meus clientes são hardwares específicos, que possuem o protocolo TCP/IP implementado neles, e estarão acessando o software tanto em rede local quanto pela Internet.
Opa, sem querer me intrometer tb, mas se alguém puder me arranjar material a respeito é bastante interessante.
[]s
opa e ai caiortp,
cara achei um link bom da uma olhada!
http://www.hwn.com.br/pej/tij2pej/PEJ315.htm
c alguem tiver alguma dica…
irei acompanhar esse tópico.
opa blza homisinho obrigado pelo site, estou lendo aqui parece ser interessante.
pelo visto trabalhamos em áreas semelhantes
[]s
mais pra dar um UP…
como eu sei q um cliente c desconectou???
eu criei uma thread e a memsa ta parada na linha
entrada.read(dados);
onde “entrada” é meu BufferedReader de read do socket e “dados” um vetor de Char…
a thread para nessa linha e fica aguardando receber algo, mas ai digamos q deu pau na conexão “CRTL+ALT+DEL” no meu cliente, ele sai dessa linha e continua adiante no codigo…
como eu testo c o cliente desconectou???
e como eu posso especificar um tempo para o servidor ficar aguardando e quando ele passar eu finalizar a thread?