Bom dia galera… estou tentando receber informações de 2 rastreadores em um servidor que fara o tratamento das mesmas…mais estou com um probleminha…
vamos lá…
Inicio o servidor e o primeiro rastreador se conecta e começa a me enviar suas informaçoes… até ai blz… o segundo rastreador se conecta tambem… as conexões estão funcionando.
mais quando o segundo rastreador me envia sua primeira mensagem me da a seguinte exceção
Exception in thread "Thread-3" java.lang.IndexOutOfBoundsException: end
at java.util.regex.Matcher.region(Unknown Source)
at java.util.Scanner.findPatternInBuffer(Unknown Source)
at java.util.Scanner.findWithinHorizon(Unknown Source)
at java.util.Scanner.nextLine(Unknown Source)
at tracker.server.Servidor.run(Servidor.java:60)
não sei o porque ela aparece sendo que os clientes(rastreadores) estão em theads diferentes e cada um executa seu metodo de recebimento de informações separadamante.
Você está reaproveitando o objeto do tipo Scanner em várias threads? Não faça isso - vai dar problemas
M
matheus.nani
Desculpe aqui vai o código:
// metodo run oque a thead executa.publicvoidrun(){try{while(true){conexao1=servidor.accept();testa=true;System.out.println("Conectado.");TELA_Server.getTelaprincipal().append("Conectado ao servidor : "+conexao1.getInetAddress().getHostAddress()+"\n");GetInfo();//enviaInfCliente();}}catch(IOExceptione){e.printStackTrace();System.out.println("IOException "+e);}}// metodo que recebe as inf dos rastreadores e envia para um textAreapublicstaticvoidGetInfo(){try{entrada=newScanner(conexao1.getInputStream());while(entrada!=null){Recebida=entrada.nextLine();// o ERRO DA NESSA LINHASystem.out.println("RECEBIDO CLIENTE: "+Recebida);TELA_Server.getTelaprincipal().append(Recebida+"\n");}}catch(Exceptione){e.printStackTrace();System.out.println("ERRO:"+e.getMessage());}}
M
matheus.nani
como poderia fazer então ? não utilizo mto theads 1° projeto :oops: sry
poderia me dar uma dica ?
E
entanglement
A primeira coisa errada é o uso de métodos estáticos - só de ver isso já vi que a variável “entrada” é estática e está sendo compartilhada por todas as threads, o que vai dar problemas.