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){}
}
}
}
