Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: [JAVA] Client Server

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37

    [JAVA] Client Server

    Salve a tutti.
    Si puo fare un collegamento client server in cui il client nn ha il main?

    Spiego:
    Ho fatto un sito in html e con alcune servlet java che fanno delle query al database(con supporto web server tomcat).
    Ora devo inviare i dati della query fatta sul mio database (con una servlet) ad un server(che devo creare io in java) che me li deve confrontare con i dati di un altro database.
    Non so se vada bene: ho fatto il client partendo dalla servlet che mi pesca i dati sul mio database..però senza mettere il main..e non funziona, nn si collega al server.
    Questo perchè ci deve essere il main anche nel client?
    Grazie.

  2. #2
    Se crei una classe diversa dalla servlet devi per forza mettere il main , mentre se hai creato un'altra servlet non è necessario , però devi avviarla tramite Tomcat.

    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Grazie mille dell'interessamento!

    Dunque..io non so di preciso quello che ho fatto:
    Questo è la classe della servlet che mi serve per estrarre i dati:

    codice:
    public class Prova6 extends HttpServlet
    {	
      	public void service
    	   (HttpServletRequest req,
    	    HttpServletResponse res)
    	    throws IOException, ServletException
    	    {
    	    	res.setContentType("text/html");
    	    	PrintWriter out = res.getWriter();
    .....
    Poi sempre all'interno di questa classe(nel try che tenta il collegamento al db) ho fatto anche il collegamento col server tramite socket così:
    codice:
    try{
    	     	     s= new Socket("localhost", 11113);
    	             ObjectInputStream is1 = new ObjectInputStream(s.getInputStream());
    	             ObjectOutputStream os1 = new ObjectOutputStream(s.getOutputStream());
    	             DataInputStream is3 = new DataInputStream(s.getInputStream());
    	             DataOutputStream os2 = new DataOutputStream(s.getOutputStream());
    	      
    	             for (int j=0; j<y; j++)
    	             {	       	
    	       	      os1.writeObject(ingy[j]); //array ingr ricetta
    	       	      os2.writeFloat(qtyy[j]);	//qtà ricetta       	  	    	         	   
    	    	      }	    	      
    				  n = (int)is3.read();				
    				  ingout = new String[n];				
    				  qtyout = new float[n]; 
    				
    	    	       ingout = (String[]) is1.readObject();  //array di output(dal server) di ingr da comprare e qtà
    	               qtyout = (float[]) is1.readObject();
    
    	    	  out.println("<center>");	     
    	          out.println("<font face=cursive size=6>Lista della spesa: </font>");    
    	           
    	           
    	          for (int j=0; j<ingout.length; j++){	       	                                    						       out.println("<fontface=cursive><h3>"+ingout[j]+":"+qtyout[j]+"</h3></font></br>"); 
                      }                              
                      os1.close();
    	    	  os2.close();
    	    	  is1.close();
    	    	  is3.close();
                    
                   }
                   catch(UnknownHostException e){
                   	out.println("Host Unknown");
                   }
                   catch(Exception e){
                   	out.println(e);
                   }  
    	       	   out.println("<center>");
    	       	   out.println("</body>");
    	    	   out.println("</html>");
    
    	    	   r1.close();
    	    	   s1.close();
    	    	   c1.close(); 
    	    	}
    Poi ho fatto il server che riprende quei dati e li confronta coi suoi.
    Lancio tomcat ma il tutto non funziona.
    Per ora il problema non è il server(credo) perchè l'errore che mi da è dato dal fallimento della connessione col server..

    Quindi non va sicuramente bene come ho fatto il client!

    C'è qualcuno che sa darmi una dritta su come devo fare?
    Grazie!!!


  4. #4
    Ok , in questo caso non ti serve il main
    Ma che errore ti da?
    Il server è funzionante???
    Scriviti una classettina per vedere se va.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    mi da questo errore:

    "java.net.ConnectException: Connection refused: connect"

    Il server è cosi'..anche qui nn so se ho fatto giusto..anzi!
    La cosa che mi da da pensare è il collegamento al database..ho provato a fare come si fa nella servlet ma nn so se vada bene lo stesso.
    GRAZIE MILLE!!!

    codice:
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    
    public class Server{
    	public static void main(String args[]){
    		Socket cs = null;
    		ServerSocket ss = null;
    		
        	String dbUrl="jdbc:odbc:Cucina";
        	String user="laurafranca";
    	String password="dory";
    	    
    	    String[] ingy;
    	    float[] qtyy;
    	    
    	    String[] ingout;
    	    float[] qtyout;
    	    
    		try{
    			ss = new ServerSocket(2222);
    			while(true){
                                    cs=ss.accept();
    
    				ObjectOutputStream os1= new ObjectOutputStream(cs.getOutputStream());
    			//	ObjectOutputStream os2= new ObjectOutputStream(cs.getOutputStream());
    				ObjectInputStream is1= new ObjectInputStream(cs.getInputStream());
    				DataInputStream is2= new DataInputStream(cs.getInputStream());
    				DataOutputStream os3 = new DataOutputStream(cs.getOutputStream());
    				
    				ingy = (String[])is1.readObject(); //array ricetta
    				qtyy = (float[])is1.readObject();
    				
    	    	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	    	    Connection c = DriverManager.getConnection(dbUrl,user,password);
    	    	    Statement s = c.createStatement();	    	   
    	    	    ResultSet r = s.executeQuery("SELECT * FROM Dispensa");
    								
    				int i=0;
    				int x=0;
    				
    				while(r.next()){
    					x++;
    				}
    				    				
    				String[] ingd = new String[x]; //array dispensa
    				float[] qtyd = new float[x];
    			    
    			    int h=0;
    			    ingout = new String[h]; //array output spesa
    				qtyout = new float[h];
    				
    				
    				while(r.next()){					
    					ingd[i] = r.getString("Ingredienti");
    					qtyd[i] = r.getFloat("Quantità");					
    					i++;
    				}
    			    
    				for(int j=0; j<ingy.length; j++){
    					for(int k=0; k<ingd.length; k++){
    						
    						if (ingy[j]==ingd[k]){
    							
    							float q = qtyy[j] - qtyd[k];
    							
    						
    							
    							if (q>0){																							
    								ingout[h] = ingy[j];
    								qtyout[h] = q;																
    								h++;
    							}
    						}	
    					}
    				}
    				
    				os3.write(h);
    								
    				for(int a=0; a<h; a++){
    					os1.writeObject(ingout[a]);
    					os3.writeFloat(qtyout[a]);
    				}
    
    			os1.close();
    			os3.close();
    			is1.close();
    			is2.close();
    	
    			}
    	
    		}
    		catch(UnknownHostException e){
    			System.err.println("Host Unknown");
    		}
    		catch(Exception e){
    			System.err.println(e);
    		}
    	}
    }

  6. #6
    Scusa , ma il server lo attivi sulla porta 2222 e il socket lo apri sulla porta 11113????
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Si..va beh..mi son sbagliata perchè avevo provato a cambiare il numero della porta socket in tutti e due..poi non so perchè ho ricambiato solo in uno.
    Cmq anche se la porta è la stessa(ad es.2222) mi da lo stesso errore.
    Non so perchè..

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    adesso poi mi da questo errore:

    java.net.SocketException: Connection reset by peer: JVM_recv in socket input stream read

    quindi si sara' connesso al server?

  9. #9
    Prima di fare i passaggi tramite servlet fai una prova con una classe semplice che si colleghi al server ed analizzane il comportamento,
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Ok!
    Ci provo!!
    Grazie!
    Lau

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.