Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Discussione: [JAVA] Client Server

  1. #11
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Ho provato a fare un client e un server normali(credo) senza collegamenti a database da nessuna parte.
    Non mi funziona!!! Non capisco perchè!!!!

    CLIENT:
    codice:
    import java.net.*;
    import java.io.*;
    
    public class Client {
    	public static void main(String args[]){
    		Socket s = null;
    		String[] ingy = {"Ciliegine di Mozzarella (gr)","Pomodorini","Origano (pizzichi)"};		
    		int[] qtyy = {30,3,1};
    		System.out.println("Ingredienti e quantità ricetta: ");
    		for (int i=0; i<ingy.length; i++){
    			System.out.println(ingy[i]+","+qtyy[i])	
    		}
    		
            int y = ingy.length;        
            int n;
                   
            String[] ingout;
            float[] qtyout;
                 
    	               try{	    	    
    	     	     s= new Socket("localhost", 2222);
    	             ObjectInputStream is1 = new ObjectInputStream(s.getInputStream());
    	             ObjectOutputStream os1 = new ObjectOutputStream(s.getOutputStream());
    	             DataInputStream is3 = new DataInputStream(s.getInputStream());
    	             DataOutputStream os2 = new DataOutputStream(s.getOutputStream());
    	             
    	             os2.write(y);
    	             
    	             for (int j=0; j<y; j++)
    	             {	       	
    	       	      os1.writeObject(ingy[j]);
    	       	      os2.writeFloat(qtyy[j]);	       	  	    	         	   
    	    	      } 
    				  n = (int)is3.read();
    				
    				  ingout = new String[n];				
    				  qtyout = new float[n];
    				
    	    	      for (int j=0; j<n; j++)
    	              {
    	    	       ingout[j] = (String) is1.readObject();
    	               qtyout[j] = is3.readFloat();
    	        
    	               }
    	               
    	          System.out.println("\nLista della spesa: ");    
    
    	          for (int j=0; j<n; j++){	       
    	                System.out.println("Ingredienti\n"+ingout[j]+":"+qtyout[j]); 
                    }
                                     
                   os1.close();
    	    	   os2.close();
    	    	   is1.close();
    	    	   is3.close();
                   s.close() ;
                   
                   }  // end-try di collegamento socket
                   
                   catch(UnknownHostException e){
                   	System.err.println("Host Unknown");
                   }
                   
                   catch(Exception e){
                   	System.err.println(e);	
                   }           
       }                         
    }

    SERVER:
    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;
    	    int y;
    	    String[] ingy;
    	    float[] qtyy;
    	    
    	    String[] ingout;
    	    float[] qtyout;
    	    
    		try{
    			ss = new ServerSocket(2222);
    			while(true){
    				cs = ss.accept();
    				ObjectOutputStream os1= new ObjectOutputStream(cs.getOutputStream());
    				DataOutputStream os3 = new DataOutputStream(cs.getOutputStream());				
    				ObjectInputStream is1= new ObjectInputStream(cs.getInputStream());
    				DataInputStream is2= new DataInputStream(cs.getInputStream());
    
    				y = (int)is2.read();
    				
    				ingy = new String[y];
    				qtyy = new float[y];
    							
    				for (int j=0; j<y; j++){
    				   ingy[j] = (String)is1.readObject(); //array ricetta
    				   qtyy[j] = is2.readFloat();
    				}
    
    				String[] ingd = {"Ciliegine di Mozzarella (gr),Farina (gr),Mele,Pomodorini"}; //array dispensa
    				float[] qtyd = {10,50,3,10};			    
    			    
    			    
    			    int n=0;
    			    ingout = new String[n]; //array output spesa
    				qtyout = new float[n];
    
    			    //ingy.lengh
    				for(int j=0; j<y; j++){      //ingy
    					for(int k=0; k<ingd.length; k++){  //ingd
    						
    						if (ingy[j]==ingd[k]){
    							
    							float q = qtyy[j] - qtyd[k];
    							
    						
    							
    							if (q>0){																							
    								ingout[n] = ingy[j];
    								qtyout[n] = q;																
    								n++;
    							}
    						}	
    					}
    				}
    
    				os3.write(n);
    								
    				for(int a=0; a<n; a++){
    					os1.writeObject(ingout[a]);
    					os3.writeFloat(qtyout[a]);
    				}
    
    			os1.close();
    			os3.close();
    			is1.close();
    			is2.close();
    	        cs.close();
    			}
    	
    		}
    		
    		catch(UnknownHostException e){
    			System.err.println("Host Unknown");
    		}
    		catch(Exception e){
    			System.err.println(e);
    		}
    	}
    }

  2. #12
    Guarda da me funziona perfettamente
    Il client e il server dialogano.
    Sinceramente non so , prova a stampare l'exception che lancia.

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

  3. #13
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Grazie mille per aver provato!
    Davvero da te funzia tutto?
    Ma salta fuori dal client il risultato del confronto anche?
    Se si, allora c'è qualcosa che nn funzia nel mio pc..perchè anche altrio esempi che ho di chat nn mi funzionano!!
    Devo mettere i file in qualche cartella particolare..fare dei procedimenti particolari(oltre ad aver installato Jcreator e java) per far funzionare tutto?
    Grazie ancora!!
    Laura

  4. #14
    Si , leggo i valori sia sul client che sul server , l'ho modificato per farglieli stampare (ho aggiunto solo una System.out.println()).
    Avvia il server e da command scrivi netstat -a
    dovresti vedere una cosa simile
    codice:
     TCP    desktop:2222           desktop:0              LISTENING
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #15
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Ciao! Grazie!
    Ho provato a fare quello che mi hai detto da cmd e mi viene fuori una riga simile a quella.
    Però continua a non funzionarmi il server: non mi restituisce nulla al client. Ma a te vengono fuori gli array di output ingout e qtyout?
    Ho aggiunto varie println ma si blocca quando deve fare il confronto tra le stringhe e nn mi restituisce gli array ingout e qtyout.

    Mi da questi errori:
    SERVER
    java.lang.ArrayIndexOutOfBoundsException

    CLIENT
    java.net.SocketException: Connection reset by peer: JVM_recv in socket input streamread

    Cosa vuol dire?

  6. #16
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Son riuscita a farlo funzionare però mettendo un numero costante nella dimensione n dell'array di output.
    Come si fa a dichiarare un array di cui nn si sa la dimensione fino a quano lo si riempie?
    Cioè, io ho dovuto fissare un valore per n(5), così:
    codice:
    	int n= 5;
    	ingout = new String[n]; //array output spesa
    	qtyout = new float[n];
    Ma vorrei che variasse perchè nn può essere fissa la dimensione di quell'array, dipende dal risultato.
    Come si fa?

    Grazie.

  7. #17
    Array non è possibile , usa un Vector
    Cmq a me non dava nessun errore del genere.
    Ma che jvm usi??
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  8. #18
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Non lo so sinceramente. Sono molto ignorante..

    Io tra i java installati ho:
    - jdk1.3.1_13
    - j2re1.4.2_02
    - j2re1.4.2_06
    - java Web start
    - J creatorV3 Le
    di altro nn vedo. Non saprei.

    Grazie!

  9. #19
    da command scrivi java -version , che vslore ti da?
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  10. #20
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    37
    Mi da 1.4.2_06.
    Va bene?

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.