Domanda Risolto Risoluzione esercizio socket in Java

Stato
Discussione chiusa ad ulteriori risposte.

raf97

Utente Bronze
13 Ottobre 2017
32
9
1
32
Salve a tutti,
sono alla prese con la creazione di socket in java. Io i concetti di base li conosco, ma talvolta mi confondo ad esempio nell'invio di messaggi da server a client e viceversa.
Quindi vorrei avere qualche delucidazione a riguardo.
Vi allego il file su cui attinge il professore quando ha spiegato i socket.

Un esercizio che stavo provando a fare è il seguente:
Si implementi un programma Java che svolge le seguenti operazioni:
1. Apre una connessione TCP verso il server "test.unicz.it" (giustamente devo mettere sul compilatore localhost dato che il suddetto sito non esiste) che ascolta sulla porta 9000.
2. Invia al server un insieme di stringhe, su linee separate, e le stampa su video (QUI RISCONTO IL PROBLEMA, Perché NON CAPISCO COME FARLO).
4. Quando riceve la stringa "CLOSE" chiude la connessione col server.

Non è richiesta l'implementazione del programma server.

Spero che qualcuno mi possa essere d'aiuto.
Grazie mille.
 

Allegati

  • Es_Socket-6.pdf
    64.7 KB · Visualizzazioni: 59
Ciao, sta sera ti edito il post e ti lascio la soluzione, sperano tu non l'abbia già risolta..
 
Ciao, sta sera ti edito il post e ti lascio la soluzione, sperano tu non l'abbia già risolta..
Alla fine ho risolto sola, grazie.
Messaggio unito automaticamente:

Alla fine ho risolto sola, grazie.
Java:
import java.io.*;
import java.net.*;
public class Client {
    
    public static void main (String [] args) throws IOException {
        String addr= "localhost";
        
        Socket clientSocket=null;
        BufferedReader in=null; PrintWriter out=null;
        
        try {
            clientSocket= new Socket (addr,9000);
            System.out.println("Client socket:"+clientSocket);
            
            //creazione di stream di input da socket
            InputStreamReader isr= new InputStreamReader (clientSocket.getInputStream());
            in= new BufferedReader(isr);
            //creazione di stream di output su socket
            OutputStreamWriter osw= new OutputStreamWriter (clientSocket.getOutputStream());
            BufferedWriter bw= new BufferedWriter (osw);
            out= new PrintWriter(bw,true);
            
            String inviaAlServer= addr;
            out.println(inviaAlServer);
            
            while (true){
                String str=in.readLine();
                if(str.equals("CLOSE")) break;
                    System.out.println("Echo: " + str);
                    out.println(str);
                
            }
        }
        catch (UnknownHostException e) {
        System.err.println("Don’t know about host "+ addr);
        System.exit(1);
        }
        catch (IOException e) {
        System.err.println("Couldn’t get I/O for the connection to: " + addr);
        System.exit(1);
        }
  System.out.println("EchoClient: closing...");
  out.close();
  in.close();
  clientSocket.close();
        
    }
    
}
 
  • Mi piace
Reazioni: 0xbro
Stato
Discussione chiusa ad ulteriori risposte.