Dicas de Sockets

5 respostas
M

Olá!
Tenho uma aplicação em JAVA e quero colocar em rede utilizando sockets. Esta aplicação conecta-se com um banco “mysql” e faz INSERT’s, SELECt’s, DELETE’s e UPDATE’s.

Bem, o que deve ter na minha classe servidor? E na cliente? O que eu passo do Servidor para o Cliente e vice-versa?

Por favor, me deem algumas dicas para eu poder começar! Um fonte seria bem útil também!

Obrigado!

5 Respostas

J

Oi

Uma dica boa, nao use Sockets… Faça isso com RMI… Aqui mesmo no PJ tem um tutorial

http://www.portaljava.com/home/modules.php?name=Content

T+

M

Tipo…pq RMI e não Sockets?

M

Eu pensei em fazer (e já estava fazendo) assim:

Servidor:

Faço a conexao com o banco e mando essa conexao:

saida = new ObjectOutputStream(socket.getOutputStream);
 saida.flush();
 saida.writeObject(conexao);

Cliente:

entrada = new ObjectInputStream(socket.getInputStream);
 Connection conexao = (Connection) entrada.readObject();

Mas dai acontece NotSerializableException! Por quê isso acontece? Como consertar? Desse jeito que estou fazendo, não é uma boa implementação?

T

Isso acontece por que o objeto que você está tentando transferir não implementa a interface serializable. Essa interface é apenas de marcação (não há nada dentro dela, sem métodos e sem variáveis), ela indica que o objeto pode ser persistido (ele pode ser salvo em algum lugar e depois pode ser lido de algum lugar, ficando exatamente igual a como ele era antes).

Se você quizer transferir só texto, transfere a string. Senão o seu objeto deve implementar java.io.Serializable.
Os atributos dos objetos da sua classe que você não quizer transferir, basta marcá-los com o modificador transient, ele diz que o atributo não deve ser salvo (no seu caso transmitido).

Ok?

Rafael ticks[/b]

M

Eu já fiz “implements Serializable” em todas as minhas classes! Tinha esquecido de mencionar…

E agora?

Criado 15 de dezembro de 2004
Ultima resposta 17 de dez. de 2004
Respostas 5
Participantes 3