Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Inviare su connessione gią aperta

    In alcuni esercizi č richiesto di inviare qualcosa sulla connessione gią aperta, io utilizzo lo stesso buffer di output per inviare una stringa, ma il Server risponde null. Come fate voi ad inviare sulla stessa connessione aperta?

    Ecco il codice:


    codice:
    import java.io.*;
    import java.net.*;
    
    public class Client{
    	public static void main(String [] args) throws Exception
    	{
    		
    		/*try{*/
    			
    			final String SERVERADDR= "151.97.252.130";
    			final int PORT=80;
    		
    			InetAddress addr=InetAddress.getByName(SERVERADDR);
    			
    			final String msg= "GET /pappalardo/prova/06.aux\n";
    			int index=0;
    			String s="";
    			boolean trovato=false;
    			String tmp="";
    			
    			Socket client=new Socket(addr, PORT);
    	
    			
    			OutputStreamWriter o=new OutputStreamWriter(client.getOutputStream());
    			BufferedWriter w=new BufferedWriter(o);
    			PrintWriter out=new PrintWriter(w, true);
    			
    			
    			System.out.println("Invio la stringa: "+"GET /pappalardo/prova/06.aux\n");
    			out.println("GET /pappalardo/prova/06.aux\n");
    			
    			InputStreamReader in=new InputStreamReader(client.getInputStream());
    			BufferedReader reader=new BufferedReader(in);
    			
    				
    				while(!trovato){
    				
    					tmp=reader.readLine();
    				
    					for(int i=0; i<tmp.length(); i++){
    						
    						if(tmp.charAt(i)!='x' && tmp.charAt(i)!=' ' && tmp.charAt(i)!='\n'){
    							index=i;
    							trovato=true;
    							break;
    						}
    					}
    				}
    				
    				 s+=tmp.substring(index);
    				 
    				
    				while(reader.ready()){
    					 
    					s+=reader.readLine();
    				}
    				
    				s+='\n';
    				s=""+" GET /pappalardo/prova/06b.aux";
    			
    			    System.out.println("Invio su connessione aperta: "+s);
    			       
    			    OutputStreamWriter o2=new OutputStreamWriter(client.getOutputStream());
    			    BufferedWriter w2=new BufferedWriter(o2);
    			    PrintWriter out2=new PrintWriter(w2, true);
    				
    				
    			    //out.flush();        //Server nuovo stream output????
    			     //out.println(s);
    			    
    			   out2.println(s);
    			   
    				
    			InputStreamReader i2=new InputStreamReader(client.getInputStream());
    			BufferedReader reader2=new BufferedReader(i2);
    			
    			System.out.println("Ho ricevuto: "+reader2.readLine());	
    			
    			client.close();
    			reader2.close();
    			reader.close();
    			out.close();
    				
    		  /*  }
    				
    		catch(Exception e){
    			System.out.println("Errore!!!");
    		}*/
    	}
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707

    Re: Inviare su connessione gią aperta

    Originariamente inviato da Darčios89
    In alcuni esercizi č richiesto di inviare qualcosa sulla connessione gią aperta, io utilizzo lo stesso buffer di output per inviare una stringa, ma il Server risponde null. Come fate voi ad inviare sulla stessa connessione aperta?
    Nella tua esposizione non mi sono chiare alcune cose:
    1) chi č che ti dą un "esercizio" del genere?
    2) questo non č solo un esercizio di socket ma č un esercizio che richiederebbe una discreta conoscenza del protocollo http, cosa che invece stai ignorando (non utilizzi nessun header http)
    3) perché ripeti lo stesso codice 2 volte? se proprio devi, fai una funzione che manda una richiesta e riceve una risposta
    4) utilizza possibilmente una libreria, non fare queste cose a mano
    5) per il riutilizzo dellla connessione devi conoscere http://en.wikipedia.org/wiki/HTTP_persistent_connection

    Ciao.

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.