Erro na camada Servidor

11 respostas
V
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Servidor {

    public static void main(String[] args) throws IOException {

        //Declaro o ServerSocket
        ServerSocket serv = null;
         Socket s = null;

        //Declaro o Socket de comunicação
        

        //Declaro o leitor para a entrada de dados
        BufferedReader entrada=null;

        try{

            //Cria o ServerSocket na porta 7000 se estiver disponível
            serv = new ServerSocket(40000);

            //Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
            s = serv.accept();

            //Cria um BufferedReader para o canal da stream de entrada de dados do socket s
            entrada = new BufferedReader(new InputStreamReader(s.getInputStream()));

            //Aguarda por algum dado e imprime a linha recebida quando recebe

            System.out.println(entrada.readLine());

        //trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de

//java.io
        }

catch(IOException e){

            //Imprime uma notificação na saída padrão caso haja algo errado.

            System.out.println("Algum problema ocorreu para criar ou receber o socket.");

        }finally{

            try{

                //Encerro o socket de comunicação
                s.close();

                //Encerro o ServerSocket
                serv.close();

            }catch(IOException e){
            }
        }





    }
}

Compiling 1 source file to D:\PROJETO CONTROBUS\SERVIDOR\CONTROLBUS_SERVIDOR\build\classes
compile:
run:
Algum problema ocorreu para criar ou receber o socket.
Exception in thread "main" java.lang.NullPointerException
at Servidor.main(Servidor.java:53)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Alguém pode me ajudar a encontrar este erro??

11 Respostas

fabiofalci

Aconteceu uma exception e entrou no finally.
at Servidor.main(Servidor.java:53)

Linha 53 da class Servidor. E ali aconteceu um NullPointer.
Tem que verificar se eles não estão nulos antes de fecha-los.

V

eu vi que ocorreu a exception porque não ta conseguindo criar o socket, mas alguém sabe me dizer porque não ta criando o socket??

fabiofalci

Imprima a exception e coloque aqui

V

como eu imprimo a exception??? porque quando mando compilar tudo que aparece no console ja coloquei na primeira mensagem…

fabiofalci

Ali no catch, coloca uma linha assim

e.printStackTrace();
V

apareceu isso:

deps-jar:

Compiling 1 source file to D:\PROJETO CONTROBUS\SERVIDOR\CONTROLBUS_SERVIDOR\build\classes

compile:

run:

Algum problema ocorreu para criar ou receber o socket.

java.lang.NullPointerException

at Servidor.main(Servidor.java:53)

CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
fantomas
Caras, eu testei o código ( o servidor ) e executou corretamente, sem nenhum problema.  :shock: 

Estou achando que vc esta executando um versão desatualizado do seu .class, aplique uma operação de rebuild no projeto.

É claro que tem os detalhes no controle das exceptions:

[code]
        try {
        ...
        } catch(IOException e){  
   
             //Imprime uma notificação na saída padrão caso haja algo errado.  
   
             System.out.println("Algum problema ocorreu para criar ou receber o socket.");  

             e.printStackTrace();  // <--- ALTEREI AQUI  :D 
   
         }finally{  
   
             try{  
   
                 //Encerro o socket de comunicação  
                 s.close();  
   
                 //Encerro o ServerSocket  
                 serv.close();  
   
             }catch(IOException e){  
               e.printStackTrace();  // <--- ALTEREI AQUI  :D 
             }  
         }
V

Não sei o que estou fazendo de errado então, estou rodando o mesmo codigo e até agora não funcinou aqui…
mas valeu pela ajuda, vou continuar tentando.

fantomas
  1. Verifique o conteúdo das exceptions incluindo os ajustes que sugeri (se possível inclua um post com eles).

  2. A porta que vc escolheu NÃO pode estar sendo utilizada por outro software.

flws

V

acho que não é esse o erro, poir ja mudei de porta várias vezes e sempre acontece o mesmo erro…

fantomas

Coloca a stack da exception em um post pra gente analisar.

flws

Criado 10 de setembro de 2009
Ultima resposta 10 de set. de 2009
Respostas 11
Participantes 3