Re:java socket

8 respostas
raphaelfs

cara…
sem ver o codigo fica um pouco dificil falar.
mas acho que vc esta tentando abrir um conexão, mas ela já esta aberta.

8 Respostas

raphaelfs

Ok,
mas do outro lado a aplicação está ‘escutando’ no endereço correto ?

raphaelfs

a primeira parte do codigo é o cliente alpha (iniciarConexao()) e o servidor alpha(aguardarConexao())?

se for, repare que as porta estao diferentes…

do demais, nao vejo erro… vc sabe onde esta ocorrendo a exception ?qual catch ta tratando ?

raphaelfs

ok,
entendi

Tente fazer um coisa,
De um Sleep no Omega, para ver se esta dando tempo do servidor alpha ficar pronto para receber a conexão.

mas cara, to meio sem ideia do possa ser, o ideal seria debugar esse codigo, pq parece ser um detalhe que esta passando desapercebido

for ( String ip : listaIP ) {  
                              
                            try { 

                                    [b]Thread.sleep(10000);[/b]
                              
                                     conexao_cliente = new Socket( ip_cliente_alpha , 7702) ;  
                                  
                                     enviar = new PrintWriter( conexao_cliente.getOutputStream() ) ;  
                                
                                     enviar.println( mensagem ) ;  
                              
                                     enviar.flush();  
                              
                                     enviar.close() ;  
                                       
                                     conexao_cliente.close() ;  
                                       
   
                                 } catch (IOException e) {  
                                      
                                     e.printStackTrace();  
                                       
                                     JOptionPane.showMessageDialog( null , "Servidor Omega não conseguiu estabelecer conexão com o cliente : " + ip  , "Erro" , JOptionPane.ERROR_MESSAGE );  
                                      
                                     if ( listaAux.contains( ip ) ) {  
                                           
                                         listaAux.remove( ip ) ;   
                                       
                                     }  
                                      
                                     gravarIP( listaAux ) ;  
                                  
                                 }
I

Gente estou fazendo um pequena aplicação cliente servidor no java com uma simple troca de mensagem .

Quando o cliente envia a primeira mensagem o servidor recebe e exibe normal mas quando vai enviar a segunda vez é exibido uma Exception…

Alguem pode me dar uma luz que erro é esse !?!?!

Agradeço a quem ajudar .

I

Este erro tem haver com outra coisa creio eu…Pq tenho certeza que as conexões estao sendo todas fechadas…

Estou fazendo log disso.

I
public void iniciarConexao() {
		
		
		 System.out.println("Cliente Alpha estabelecendo conexão com o Servidor Alpha... \n" );
        
		 
         	try {
		
        	 		conexao = new Socket("10.46.21.18" , 7700 );

        	 		System.out.println("Conexão estabelecida com o Servidor Alpha... \n" );
        	 
        	 		conexao.close();
        	 
        	 		aguardarConexao();
        	 
         		} catch (IOException e) {

         			JOptionPane.showMessageDialog( null , "Conexão não estabelecida com o Servidor Alpha." , "Cliente Alpha" , JOptionPane.ERROR_MESSAGE );
         
         		}
        
         System.out.println("Conexão finalizada com o Servidor Alpha. \n");
         
		
	}
	
	
	public void aguardarConexao() {
		
		
		try {
		
			
			server = new ServerSocket(7702);
		
			while ( true ) {

			   System.out.println("Cliente Alpha Aguardando Conexão...\n");
				
			   conexao_servidor = server.accept() ;			
	                  
	           in = new InputStreamReader(conexao_servidor.getInputStream());
               
	           ler = new BufferedReader(in);
	           
	           System.out.println("Conexao estabelecida no cliente alpha...\n");
	           
	           while ( ( mensagem = ler.readLine() ) != null ) { 
	        	   
	        	   TelaExibirMensagem.getInstancia().exibirTela( mensagem );
	        	   
	           }
	           
	           in.close();
	           
	           ler.close();
	           
	           conexao_servidor.close();
	           
	           System.out.println("Conexao finalizada no cliente alpha...\n");
	           
			}
			
			
		} catch (IOException e) {
			
			JOptionPane.showMessageDialog( null , "Erro na sincronização de mensagem com Servidor Alpha." , "Cliente Alpha" , JOptionPane.ERROR_MESSAGE );

		}
		
	}
public void iniciarServidorOmega( int porta ) {
			
			System.out.println("Servidor Omega Aguardando Conexão...\n");
			
			listaAux = getListaIP() ;
			
			try {
			
				server = new ServerSocket( porta ) ;
			
				while ( true ) {
					
		           conexao = server.accept() ;			
		           
		           System.out.println("Servidor Omega conectado o cliente : " + conexao.getInetAddress().getHostAddress() + "\n") ;
		           
		           in = new InputStreamReader( conexao.getInputStream() ) ;
	                
		           ler = new BufferedReader( in ) ;
		           
		           while ( ( mensagem = ler.readLine() ) != null ) {
	               
		        	   listaIP = getListaIP() ; 
		        	   
		        	   for ( String ip : listaIP ) {
		        		   
		        		   try {		        		   
		        		   
		        			   		conexao_cliente = new Socket( ip_cliente_alpha , 7702) ;
		        			   
		        			   		enviar = new PrintWriter( conexao_cliente.getOutputStream() ) ;
		        	       	 
		        			   		enviar.println( mensagem ) ;
		          	 	   
		        			   		enviar.flush();
		          	 	   
		        			   		enviar.close() ;
		        			   		
		        			   		conexao_cliente.close() ;
		        			   		

		        		   		} catch (IOException e) {
		        		    	   
		        		   			e.printStackTrace();
		        		   			
		        		   			JOptionPane.showMessageDialog( null , "Servidor Omega não conseguiu estabelecer conexão com o cliente : " + ip  , "Erro" , JOptionPane.ERROR_MESSAGE );
		        		    	   
		        		   			if ( listaAux.contains( ip ) ) {
		        		   				
		        		   				listaAux.remove( ip ) ;	
		        		   			
		        		   			}
		        		    	   
		        		   			gravarIP( listaAux ) ;
		        		       
		        		   		}	

		        	   }
	           
		          }
		           
		           
		           System.out.println("Conexão finalizada com o servidor omega.");
		           
				}
				
			} catch ( IOException e ) {
				
				JOptionPane.showMessageDialog( null , "Erro ocorrido na inicialização do servidor." , "Servidor Omega" , JOptionPane.ERROR_MESSAGE );

			}
			
	}
I

O código é esse . Na primeira vez a mensagem é enviada normal ao clinete alpha !

Mas quando vo mandar a mensagem pela segunda vez é que exibr essa Exception …Connection Refused

I

a primeira parte do codigo é o cliente alpha (iniciarConexao()) e o servidor alpha(aguardarConexao())?

se for, repare que as porta estao diferentes…

do demais, nao vejo erro… vc sabe onde esta ocorrendo a exception ?qual catch ta tratando ?

Na verdade é assim : O cliente Alpha vai estabelecer conexao com o servidor Omega . Após ele estabelecer a conexao o servidor Omega vai enviar uma mensagem novamente ao cliente aplha que na verdade fica na escuta naquela porta mesmo…

O erro de Exception vem nessa linha .

} catch (IOException e) {  
                                      
                                     e.printStackTrace();  
                                       
                                     JOptionPane.showMessageDialog( null , "Servidor Omega não conseguiu estabelecer conexão com o cliente : " + ip  , "Erro" , JOptionPane.ERROR_MESSAGE );

O engraçado que na primeira vez funciona tudo certinho…mas na seguna exibe isso

Criado 29 de julho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 8
Participantes 2