Será que vc pode postar a parte do código do cliente e do servidor onde estabelecem a conexão?
dwduncan
O código Cliente é este:
voidsolicitarDados(){try{booleanagd=false;intintervaloSolicitacao=10000;intquantidadeLoops=0;Filedir=newFile("./transferencia/");if(!dir.exists()){dir.mkdir();}//Este trecho só é necessário quando se optar por uma conexão discada, para as demais ele é inerteFormDiscadorform=null;if(super.getDiscador()!=null&&super.getDiscador().getForm()!=null){form=super.getDiscador().getForm();}MatrizFilialestaFilial=MatrizFilialBD.getFilial(propriedades.getPropriedade(Props.FilialAjustada.getIdentificador()));while(!encerrar){booleantransmidos=false;try{if(agd)try{Thread.sleep(intervaloSolicitacao=intervalo);}catch(Exceptione){};agd=true;//System.out.println("Solicitando dados a matriz... " + getHostMestre());StringipCliente="";booleanenviar=true;quantidadeLoops++;if(form!=null)form.setResumo("Tentando conexão de dados com a matriz...",form.ICONE_CONEXAO);Socketcliente=newSocket(super.getHostMestre(),PORTA);ipCliente=cliente.getInetAddress().getHostAddress();if(form!=null)form.setResumo("Estabelecida conexão com a matriz...",form.ICONE_OK);DataInputStreamdis=newDataInputStream(cliente.getInputStream());DataOutputStreamdos=newDataOutputStream(cliente.getOutputStream());FilearquivoEnviar=getArquivoEnviar();Stringmd5Enviada=arquivoEnviar!=null?Criptografa.getMD5(arquivoEnviar):"NIL";dos.writeInt(estaFilial.getCodigo());dos.writeUTF(md5Enviada);//dos.flush(); booleanconfirmarRecebimento=false;if(md5Enviada.equals("NIL")){if(form!=null){form.setDadosEnviados("Não há dados a enviar...",form.ICONE_OK);form.setAutenticacaoEnviados("Não requer autenticação...",form.ICONE_OK);}intervaloSolicitacao=getIntervalo_posconfirmado();}else{FileInputStreamfis=null;fis=newFileInputStream(arquivoEnviar);intquantidadeBytes=fis.available();byte[]dados=newbyte[quantidadeBytes];dos.writeInt(quantidadeBytes);fis.read(dados);dos.write(dados,0,dados.length);dos.flush();if(form!=null)form.setDadosEnviados("Enviados "+dados.length+" bytes...",form.ICONE_OK);//System.out.println("Transmitidos " + dados.length + " bytes...");fis.close();//CONFIRMA SE A AUTENTICAÇÃO OCORREU DE ACORDOconfirmarRecebimento=dis.readBoolean();if(confirmarRecebimento){estoquebd.marcarComoEnviadas(0);notabd.marcarComoEnviadas(0);if(form!=null)form.setAutenticacaoEnviados("Autenticados com sucesso...",form.ICONE_OK);//System.out.println("Recebimento confirmado pela matriz, os dados foram marcados como enviados...");}else{if(form!=null)form.setAutenticacaoEnviados("Falha de autenticação...",form.ICONE_FALHA);}}dos.close();dis.close();cliente=newSocket(getHostMestre(),PORTA);dis=newDataInputStream(cliente.getInputStream());dos=newDataOutputStream(cliente.getOutputStream());Stringmd5Recebida=dis.readUTF();booleanconfere=false;if(!md5Recebida.equals("NIL")){ArrayList<Byte>bytes=newArrayList<Byte>();Stringarquivo="transferencia/dados_recebidos"+super.getDDHHMMSS()+".rcb";FileOutputStreamfos=newFileOutputStream(arquivo);intquantidadeBytes=dis.readInt();intcont=0;while(cont<quantidadeBytes){intb=dis.read();fos.write(b);cont++;}fos.flush();fos.close();System.out.println("Recebidos "+quantidadeBytes+" bytes...");if(form!=null)form.setDadosRecebidos("Recebidos "+quantidadeBytes+" bytes...",form.ICONE_OK);Stringmd5ArquivoRecebido=Criptografa.getMD5(newFile(arquivo));confere=md5ArquivoRecebido.equals(md5Recebida);dos.writeBoolean(confere);dos.flush();//System.out.println("Recebimento confirmado pela filial, os dados foram marcados como enviados...");if(confere){if(form!=null)form.setAutenticacaoRecebidos("Autenticados com sucesso...",form.ICONE_OK);synchronized(CambioDadosCliente.this){CambioDadosCliente.this.notify();}}else{if(form!=null)form.setAutenticacaoRecebidos("Falha de autenticação...",form.ICONE_FALHA);Filef=newFile(arquivo);f.delete();}}else{if(form!=null){form.setDadosRecebidos("Não há dados a receber...",form.ICONE_OK);form.setAutenticacaoRecebidos("Não requer autenticação...",form.ICONE_OK);}}transmidos=true;dis.close();dos.close();cliente.close();if(confere){intervaloSolicitacao=getIntervalo_posconfirmado();}if(form!=null){form.setResumo("Operação realizada com sucesso...",form.ICONE_OK);}}catch(Exceptionex){}finally{if(form!=null&&(super.getDiscador().getTentativasRespostaMatriz()<quantidadeLoops||transmidos)){if(!transmidos)form.setResumo("Matriz não responde...",form.ICONE_FALHA);notificar(transmidos);break;}}}}catch(Exceptione){e.printStackTrace();}}
dwduncan
Aqui está a parte do servidor:
void receberDados(){
carregarArquivosRecebidos();Threadt=newThread("Receber dados ... "){publicvoidrun(){try{ServerSocketservidor=newServerSocket(PORTA);Filedir=newFile("./transferencia/");if(!dir.exists()){dir.mkdir();}while(!encerrar){booleantransmidos=false;//System.out.println("Aguardando conexão cliente...");try{servidor.setSoTimeout(0);Socketcliente=servidor.accept();finalStringipCliente=cliente.getInetAddress().getHostAddress();DataOutputStreamdos=newDataOutputStream(cliente.getOutputStream());DataInputStreamdis=newDataInputStream(cliente.getInputStream());System.out.println("IP CLIENTE: "+cliente.getInetAddress().getHostAddress());intcodigoFilialRecebida=dis.readInt();//System.out.println("Recebida a filial " + codigoFilialRecebida + "...");Stringmd5Recebido=dis.readUTF();//System.out.println("Código md5 recebido " + md5Recebido + "...");if(md5Recebido.equals("NIL")){//System.out.println("Nenhum dado recebido do cliente...");}else{Stringnomearq="transferencia/recebido"+getDDHHMMSS()+"_"+codigoFilialRecebida+".rcb";FileOutputStreamfos=newFileOutputStream(newFile(nomearq));ArrayList<Byte>bytes=newArrayList<Byte>();intquantidadeBytes=dis.readInt();intcont=0;while(cont<quantidadeBytes){intb=dis.read();fos.write(b);cont++;}fos.flush();fos.close();//System.out.println("Recebidos " + cont + " bytes...");Stringmd5ArquivoRecebido=Criptografa.getMD5(newFile(nomearq));booleanconferido=md5ArquivoRecebido.equals(md5Recebido);dos.writeBoolean(conferido);if(conferido){synchronized(CambioDadosServidor.this){CambioDadosServidor.this.notify();}}else{Filef=newFile(nomearq);f.delete();}}dis.close();dos.close();try{while(true){servidor.setSoTimeout(10000);//aguarda até 10 segundos para receber uma resposta do cliente//se os 10s expirarem uma exceção será lançadacliente=servidor.accept();StringipClienteReconexao=cliente.getInetAddress().getHostAddress();if(ipClienteReconexao.equals(ipCliente))break;}}catch(Exceptione){cliente.close();continue;}dos=newDataOutputStream(cliente.getOutputStream());dis=newDataInputStream(cliente.getInputStream());FilearquivoEnviar=getArquivoEnviar(codigoFilialRecebida);Stringmd5Enviada=arquivoEnviar!=null?Criptografa.getMD5(arquivoEnviar):"NIL";dos.writeUTF(md5Enviada);dos.flush();if(!md5Enviada.equals("NIL")){FileInputStreamfis=null;fis=newFileInputStream(arquivoEnviar);intquantidadeBytes=fis.available();byte[]dados=newbyte[quantidadeBytes];dos.writeInt(quantidadeBytes);fis.read(dados);dos.write(dados,0,dados.length);//System.out.println("Transmitidos " + dados.length + " bytes para filial " + codigoFilialRecebida + "...");//CONFIRMA SE A AUTENTICAÇÃO OCORREU DE ACORDObooleanconfirmarRecebimento=dis.readBoolean();if(confirmarRecebimento){marcarDadosComoEnviados(codigoFilialRecebida);//System.out.println("Recebimento confirmado pela filial, os dados foram marcados como enviados...");}}else{//System.out.println("Não há dados a serem enviados...");}transmidos=true;try{//System.out.println("CambioDadosServidor.super.getDiscador() = " + CambioDadosServidor.super.getDiscador());if(CambioDadosServidor.super.getDiscador()!=null){synchronized(CambioDadosServidor.super.getDiscador()){//System.out.println("Notificando discaor...");CambioDadosServidor.super.getDiscador().setBemSucedido(transmidos);CambioDadosServidor.super.getDiscador().notify();}}}catch(Exceptionec){}dis.close();dos.flush();dos.close();cliente.close();}catch(Exceptione){e.printStackTrace();}finally{try{if(CambioDadosServidor.super.getDiscador()!=null){synchronized(CambioDadosServidor.super.getDiscador()){//System.out.println("Notificando discaor...");CambioDadosServidor.super.getDiscador().setBemSucedido(transmidos);CambioDadosServidor.super.getDiscador().notify();}}}catch(Exceptionec){}}}servidor.close();}catch(Exceptione){//e.printStackTrace(); }}};t.start();}