Visualizzazione dei risultati da 1 a 10 su 10

Discussione: creare un server!

  1. #1

    creare un server!

    Ciao ragà,non riesco a capire la funzionalità fra client e server.

    Mettiamo il caso che vorrei fare un client che effettuata la connessione riceve un messaggio di risposta dal server(tipo "Benvenuto") e lo stampi a schermo...

    come dovrei impostare?

    saluti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: creare un server!

    Originariamente inviato da maximus123
    Mettiamo il caso che vorrei fare un client che effettuata la connessione riceve un messaggio di risposta dal server(tipo "Benvenuto") e lo stampi a schermo...

    come dovrei impostare?
    Mi spiace .... molto (troppo) vago.
    Intendi una connessione tramite socket (su TCP se non ci sono altre indicazioni/necessità particolari) con un tuo "protocollo" (anche minimale) per cui client e server sono sviluppati da te?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    anche perché googlando client/server java example ci sono una marea di esempi funzionanti(e la oracle fornisce pure un tutorial

  4. #4
    io vorrei diciamo capire le basi su come funziona lo scambio dati,perchè è questo che non capisco...la connessione deve essere TCP(perchè è con questo che sto inizando dato che è più sicuro)...

    se gentilmente mi fate un esempio semplice ma chiaro,tipo:

    client:
    invia dei dati al server
    legge i dati ritornati dal server e li stampa su schermo(tipo stringhe o numeri giusto per esempio)

    server:
    legge i dati ricevuti dal client
    invia i dati al client


    non ci capisco perchè online trovo esempi che sono commentati fino ad un certo punto,non sono diciamo molto chiari

    se mi fate questo favore vi ringrazio di cuore

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da maximus123
    non ci capisco perchè online trovo esempi che sono commentati fino ad un certo punto,non sono diciamo molto chiari

    se mi fate questo favore vi ringrazio di cuore
    Scusa la domanda ma dal momento che hai già visto degli esempi ..... hai almeno chiaro quali sono le classi che possono essere usate/implicate in tutto questo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    si certo,però non riesco a capire il funzionamento di scrittura sul socket e lettura dal socket...

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da maximus123
    si certo,però non riesco a capire il funzionamento di scrittura sul socket e lettura dal socket...
    Di un socket (parliamo sempre di socket su TCP, non i "datagram") puoi avere un InputStream e un OutputStream. Se devi scrivere/leggere "a byte", bastano questi. Se devi scrivere/leggere altro (es. "a caratteri" o "a linee"), devi "wrapparli" (incapsularli) in altre classi di I/O.
    Ma qui siamo nel "mondo" del I/O ... non più tanto specificatamente del networking. Quindi devi conoscere bene come usare le classi del package java.io.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    allora sto facendo degli esempi,ditemi se faccio bene oppure sbaglio...

    Server:
    codice:
    	ServerSocket server;
    	Socket sock;
    	
    	while(true)
    	{
    	server = new ServerSocket(11001);
    	sock = server.accept();
    	System.out.println("Connessione stabilita...");
    	sock.close();
    	System.out.println("Connessione chiusa...");
    	}

    Client:
    codice:
    Socket socket_client;
    	
    	socket_client = new Socket(11001);
    	System.out.println("Connesso!");
    	
    	socket.close();

    non so se ho fatto bene...

  9. #9
    Originariamente inviato da maximus123
    non so se ho fatto bene...
    Purtroppo non va per niente bene. Per i seguenti motivi:
    1) per quanto riguarda il Server:
    a) non fai altro che istanziare infinite volte la ServerSocket (devi istanziarla al di fuori del ciclo while);
    b) devi gestire in qualche modo la connessione del client: porre server.accept() nel ciclo while senza fare i dovuti controlli non è propriamente giusto;
    c) non c'è la gestione dell'errore: in questo caso è fondamentale in quanto le eccezioni sollevabili sono checked.

    2) per quanto riguarda il Client:
    a) apri una Socket...ma verso quale Server? Non specifichi l'indirizzo del server con il quale il client deve connettersi;
    b) punto c del Server.

    3) Non hai stabilito un modo per far comunicare il Client con il Server: non ci sono oggetti I/O istanziati che consentano alle due entità di comunicare tra loro in qualche modo.

    Io al posto tuo seguirei il consiglio di andbin. Cerca di capire prima come utilizzare il package java.io e leggere qualcosa riguardo il package java.net (Socket e ServerSocket), poi magari ti fai qualche esercizio

  10. #10
    il mio problema era qua come dicevo...

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.