Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105

    [JAVA] server-client su pc diversi

    salve ragazzi! Per sfizio personale ho realizzato due programmi (uno client e l'altro server) ke devono trovarsi su due pc diversi di casa.
    Dopo essermi autenticato con il client parte praticamente una chat tra i due programmi e inviando appositi comandi (p. es GET ?file) ricevo il file dal server oppure sfoglio le cartelle, invio file ecc..Premetto che facendo i test sullo stesso pc funziona tutto.. se metto il client sull'altro pc (che monta linux anke se so ke non c'entra nulla) la chat funziona e quindi riesco a scambiare messaggi tranquillamente e anke a sfogliare le cartelle.. Il problema sorge nel momento in cui provo a ricevere o inviare il file..Il client non mi da risposte, non succede proprio nulla. non mi lancia neanche eccezioni..rimane in esecuzione ma non posso far nulla..Secondo voi da cosa dipende ??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [JAVA] server-client su pc diversi

    Originariamente inviato da Cawletto
    Secondo voi da cosa dipende ??
    Senza vedere quello che hai scritto è più facile vincere al lotto
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    ecco a te
    questo è il metodo per la ricezione

    codice:
    private boolean prendiFile(String received,ObjectInputStream ois) throws IOException, ClassNotFoundException
    	{
    		boolean so = false;
    		File outFile = null;
    		System.out.println("Ricezione file in corso..");
    		
     		 outFile = new File(DIR + "/" + file1.getName());
    		
    		if (ready == true){
    System.out.println("File di destinazione: " +outFile+"\n");
     		 System.out.println(" --ricezione file ");
     	      System.out.println(" --dimensione file " + FILEDIM);
     	 
         
     	     int current=0;
     	      // scrivo uno stram per il salvataggio del nuovo file
     	      FileOutputStream fos = new FileOutputStream(DIR +"/" +file1.getName());
     	     
     	    BufferedOutputStream bos = new BufferedOutputStream(fos);
            InputStream is = s.getInputStream();
     	      byte[] buf = new byte[FILEDIM];
     	     
     	     int i = 0;
     	     
     	      // riga per riga leggo il file originale per 
     	      // scriverlo nello stram del file destinazione
     	     
     	     is.skip(1);       //  ignorate.. 
     	    i= is.read(buf,0,buf.length);
     	    current = i;
     	     while(i>0){
     	    	
    
     	 
     	     i= is.read(buf,current,(buf.length-current));
     	     
               System.out.println("byte letti = " +i+"\n");
               current +=i;
     	     }
     	    System.out.println("TOTALE = " +current+"\n");
     	    bos.write(buf, 0 , current);
    	     bos.flush();
               
     	     
     	      System.out.println(" --ricezione completata\n --salvataggio");
     	    
     	     bos.close();
        	fos.close();
        	   
        	outFile = null;
        	file1 = null;
        	file = null;
    
        	    // svuotare gli strem -->
        	    
        	 
        	    
        	    // <--
     	     so = true;
    		}
    		
     	  
     	      return so;
    	}
    e questo è quello di invio

    codice:
      
    			    String file = null;
    				file = str.substring(str.indexOf("?")+1, str.length());
    				File file0 = new File(file);
    				if (file0.exists()==true){
    			oos.writeObject("XDCCGETFILE#GET#"+file0.length());
    			oos.flush();
    		
    	      byte [] filearray = new byte[(int)(file0.length())];
    	
                oos.reset();
               
              
                FileInputStream fis = new FileInputStream(file0);
                BufferedInputStream bis = new BufferedInputStream(fis);
                bis.read(filearray,0,filearray.length);
               
                System.out.println("Sending...");
    
                 // invio il file
                oos.write(filearray, 0, filearray.length);
                //.. <_
    		      oos.flush();
    		      System.out.println("Inviato!!");
    		      }
    Ti ho dato solo questi due metodi perchè non ho dubbi sul fatto che il problema è qui..
    ovviamente entrambi i metodi si trovano sia sul client che sul server..

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    risolto

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.