To fazendo uma aplicaçãozinha ond eu preciso enviar objetos, via socket … eu estava tentando fazer o seguinte :
Para enviar o objeto
public void sendData(Object pack){
try {
output.writeUTF(pack.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
e pra receber …
Objecttemp;Stringmsg=input.readUTF();Stringteste;System.out.println(msg);temp=(Object)msg;teste=temp.toString();// soh pra ver se a string q eu recebi eh igual System.out.println(teste);// ao objeto criado if(tempinstanceofMinhaClasse){System.out.println("DEU CERTO EEEEE");}else{System.out.println("naum foi o objeto naum");}}
O q sera q pode ser ?!? Achu q esse cast q eu fiz naum ta certo …
alguem pode me ajudar ?!?!
Desculpa,eunãosabia,éaprimeiravezquepostocódigoaqui/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageSockets;importObjetosComuns.Objetos;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.net.Socket;importjava.net.UnknownHostException;importjava.util.HashSet;/** * * */publicclassCliente{//Classe clienteprivateintporta;privateStringip;privateStringresposta;privateHashSet<Objetos>objetos=null;//Tenho uma lista com Objetos do tipo Label que guardo nesta listapublicCliente(intporta,Stringip){this.porta=porta;this.ip=ip;}publicHashSet<Objetos>perguntaObjetosDaTela(){//Quero o retorno da lista do servidortry{//// Create a connection to the server socket on the server application//Socketsocket=newSocket(ip,porta);//// Send a message to the client application//ObjectOutputStreamoos=newObjectOutputStream(socket.getOutputStream());oos.writeObject("componentes");//// Read and display the response message sent by server application//ObjectInputStreamois=newObjectInputStream(socket.getInputStream());objetos=(HashSet<Objetos>)ois.readObject();// resposta = message;ois.close();oos.close();}catch(UnknownHostExceptione){}catch(IOExceptione){}catch(ClassNotFoundExceptione){}returnobjetos;//retorno o Hashset de objetos}publicStringperguntaTamanhoDaTela(){//aqui me retorna o tamanho do jframe, jscroll e paneltry{//// Create a connection to the server socket on the server application//Socketsocket=newSocket(ip,porta);//// Send a message to the client application//ObjectOutputStreamoos=newObjectOutputStream(socket.getOutputStream());oos.writeObject("inicio");//// Read and display the response message sent by server application//ObjectInputStreamois=newObjectInputStream(socket.getInputStream());Stringmessage=(String)ois.readObject();resposta=message;ois.close();oos.close();}catch(UnknownHostExceptione){}catch(IOExceptione){}catch(ClassNotFoundExceptione){}returnresposta;}}/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageSockets;/** * * */importConfiguracao.ClienteServidor;importObjetosComuns.Objetos;importTelas.MoverCompo;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.net.ServerSocket;importjava.net.Socket;importjava.util.HashSet;publicclassServidor{privateServerSocketserver;privatestaticbooleanserveronoff=true;privateSocketsocket=null;publicServidor(){try{server=newServerSocket(ClienteServidor.getPorta());serveronoff=MoverCompo.clienteservidorenabledisable;}catch(IOExceptione){}}publicstaticbooleanisServeronoff(){returnserveronoff;}publicstaticvoidsetServeronoff(booleanserveronoff){Servidor.serveronoff=serveronoff;}/*public static void main(String[] args) { ServerSocketExample example = new ServerSocketExample(); example.handleConnection(); } */publicvoidhandleConnection(){// The server do a loop here to accept all connection initiated by the// client application//while(true&&serveronoff){try{System.out.println("Waiting for client message");//socket=server.accept();newConnectionHandler(socket);}catch(IOExceptione){}}System.out.println("Fim da Thread");}}classConnectionHandlerimplementsRunnable{privateSocketsocket;privateStringtamanhoDaTela=null;privateHashSet<Objetos>listaRecuperada=null;publicStringtamanhoDaTela(){//monto a string com o tamanho da telareturntamanhoDaTela=(String.valueOf(MoverCompo.getFramex()))+"-"+(String.valueOf(MoverCompo.getFramey()))+"-"+(String.valueOf(MoverCompo.getJscrollx()))+"-"+(String.valueOf(MoverCompo.getJscrolly()))+"-"+(String.valueOf(MoverCompo.getJpanelx()))+"-"+(String.valueOf(MoverCompo.getJpanely()));}publicConnectionHandler(Socketsocket){this.socket=socket;Threadt=newThread(this);t.start();}publicvoidrun(){try{//// Read a message sent by client application// ObjectOutputStreamoos=newObjectOutputStream(socket.getOutputStream());ObjectInputStreamois=newObjectInputStream(socket.getInputStream());Stringmessage=(String)ois.readObject();if(message.equals("inicio")){//jscrollx,jscrolly,jpanelx,jpanelyoos.writeObject(tamanhoDaTela());System.out.println("Recebi inicio!!!");}elseif(message.equals("componentes")){//oos.writeObject("Componentes"); oos.writeObject(MoverCompo.componentes);System.out.println("Recebi componentes!!!");}elseif(message.equals("dados")){}//// Send a response information to the client application////oos.writeObject(MoverCompo.componentes);//oos.writeObject("Hello");ois.close();oos.close();socket.close();System.out.println("Waiting for client message");}catch(IOExceptione){}catch(ClassNotFoundExceptione){}}}AquiestánoprogramaprincipalClientecliente=newCliente(porta,ip);Strings=cliente.perguntaTamanhoDaTela();Stringsizescreem[]=s.split("-");framex=Integer.parseInt(sizescreem[0]);framey=Integer.parseInt(sizescreem[1]);jscrollx=Integer.parseInt(sizescreem[2]);jscrolly=Integer.parseInt(sizescreem[3]);jpanelx=Integer.parseInt(sizescreem[4]);jpanelx=Integer.parseInt(sizescreem[5]);setBounds(0,0,framex,framey);//jpanelx,jpanely;setPreferredSize(newjava.awt.Dimension(framex,framey));getContentPane().add(jScrollPane1);jScrollPane1.setBounds(0,0,jscrollx,jscrolly);jScrollPane1.setViewportView(jPanel1);jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);jPanel1.setPreferredSize(newjava.awt.Dimension(jpanelx,jpanely));jPanel1.setSize(jpanelx,jpanely);jPanel1.setLayout(null);jPanel1.setAutoscrolls(true);jScrollPane1.setAutoscrolls(true);// cliente.perguntaObjetosDaTela();//até aqui funciona bemlistaRecuperada=cliente.perguntaObjetosDaTela();//recupero a lista enviada pelo cliente (Neste ponto tenho problemas, nada mais funciona)carregaObjetosNaTela.carregar(listaRecuperada);//Aqui tenho um método que carrega a lista de componentes na tela}