Erro em app com sockets

2 respostas
H

Eu fui mexer com sockets, dai escrevi 1 app q utiliza sockets, na verdade, copiei ela do tutorial do guj, eu compilo e rodo no netbeans, sem problema, so q como eh 1 app cliente-servidor, onde o cliente digita algo e o servidor mostra o texto digitado, tenho q executar ambos em 2 prompts, e qnd digito o comando “java Servidor”, aparece o seguinte erro:

\classes\heverton>java Servidor (Servidor.class)

Exception in thread main java.lang.NoClassDefFoundError: Servidor (wrong name:

heverton/Servidor)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:620)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12

4)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

at java.net.URLClassLoader.access$100(URLClassLoader.java:56)

at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

As variaveis de ambiente tao corretas, tanto q no netbeans ta pegando o programa, so n pega no prompt, alguem sabe o q ta acontecendo?

La vai o code do servidor e do cliente:

package heverton;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * @author heverton
 */

public class Servidor {

    public static void main(String[] args) {
        
        //Declaro o ServerSocket
        ServerSocket serv=null;
        
        //Declaro o Socket de comunicação
        Socket s= null;
        
        //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(7000);
        
            //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){
            }
        }
    }
}

codigo do cliente:

package heverton;

/**
 *
 * @author heverton
 */

import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;

public class Cliente {

    public static void main(String[] args) {
        
        //Declaro o socket cliente
        Socket s = null;
        
        //Declaro a Stream de saida de dados
        PrintStream ps = null;
        
        try{
            
            //Cria o socket com o recurso desejado na porta especificada
            s = new Socket("127.0.0.1",7000);
            
            //Cria a Stream de saida de dados
            ps = new PrintStream(s.getOutputStream());
            
            //Imprime uma linha para a stream de saída de dados
            ps.println("Estou enviando dados para o servidor");
            
        //Trata possíveis exceções
        }catch(IOException e){
            
            System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
        
        }finally{
            
            try{
                
                //Encerra o socket cliente
                s.close();
                
            }catch(IOException e){}
        
        }

    }
}

2 Respostas

T

Use o comando “java heverton.Servidor” (é preciso especificar o nome completo da classe, com pacote e tudo)

H

pegou, vlw.

q vacilo meu! :smiley:

Criado 21 de junho de 2006
Ultima resposta 21 de jun. de 2006
Respostas 2
Participantes 2