Erro socket

2 respostas
T

Boa tarde.

O código esta dando o seguinte erro:

java.lang.ClassNotFoundException: Conta

import java.io.Serializable;

public class Conta implements Serializable{
	
	private static final long serialVersionUID = 1L;
	int x;
	int y;
	int operacao;
	double resultado;
	
	public double getResultado() {
		return resultado;
	}

	public void setResultado(double resultado) {
		this.resultado = resultado;
	}

	Conta(int x, int y, int operacao){
		this.x = x;
		this.y = y;
		this.operacao = operacao;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}

	public int getOperacao() {
		return operacao;
	}
}
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;

public class Calculadora implements Runnable {

	Socket cliente;

	Calculadora(Socket cliente) {
		this.cliente = cliente;
	}
	
	public void run() {
		try {
			ObjectInputStream input = new ObjectInputStream(cliente.getInputStream());
            ObjectOutputStream output = new ObjectOutputStream(cliente.getOutputStream());
            Conta conta = (Conta) input.readObject();
			if ((conta.getOperacao() >= 1) || (conta.getOperacao() <= 4))
				switch (conta.getOperacao()) {
				case 1:
					conta.setResultado(conta.getX()+conta.getY());
					output.writeObject(conta);  
					break;
				case 2:
					conta.setResultado(conta.getX()-conta.getY());
					output.writeObject(conta); 
					break;
				case 3:
					conta.setResultado(conta.getX()*conta.getY());
					output.writeObject(conta); 
					break;
				case 4:
					conta.setResultado(conta.getX()/conta.getY());
					output.writeObject(conta); 
					break;
				}
			
			cliente.close();
		
		} catch (IOException e) {
			e.printStackTrace();
		
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}
import java.net.ServerSocket;
import java.net.Socket;

public class ServerCalculadora {

	public static void main(String[] args) {
		//WorkQueue pool = new WorkQueue(5);
		Socket cliente = null;
		ServerSocket sockServer = null;
		try {
			sockServer = new ServerSocket(3002);
			while (true) {
				cliente = sockServer.accept();
				//pool.execute(new Calculadora(cliente));	
				Calculadora calculadora = new Calculadora(cliente);
				calculadora.run(); // Teste
			}
		} catch (Exception ex) {
			System.err.println(ex);
		}

	}

}
import java.io.*;
import java.net.Socket;

public class ClientMain {

	public static void main(String[] args) {
		try{
			Socket sock = new Socket("127.0.0.1", 3002);
			ObjectOutputStream output = new ObjectOutputStream(sock.getOutputStream());  
		    ObjectInputStream input = new ObjectInputStream(sock.getInputStream());  ;
			Conta conta = new Conta(1, 4, 1);
			output.writeObject(conta);
			conta = (Conta) input.readObject();
			sock.close();
		}catch(Exception ex){
			System.err.println(ex);
		}
		
	}

}

Se alguém puder ajudar eu agradeço.

2 Respostas

E

Rode seu programa com “java -cp . ClientMain”

T

Coloquei a classe do cliente no mesmo projeto do servidor e funcionou.
Só não sei porque.

Criado 26 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 2
Participantes 2