Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Comunicazione tra Client e Server in Java: un esempio di implementazione, Esercizi di Informatica

L'implementazione di una comunicazione semplice tra un cliente e un server utilizzando java. Il cliente invia richieste al server, che elabora le richieste e invia risposte al cliente. Il documento include due parti: il client e il server, ciascuna scritta in java. Il client mostra i prodotti disponibili e chiede all'utente di inserire il proprio nome, il codice del prodotto desiderato, la quantità e il totale da pagare. Il server riceve le informazioni dal cliente, calcola il totale del prodotto desiderato e, se il totale è inferiore al totale da pagare, invia al cliente una conferma dell'ordine con il resto da pagare. Se il totale è superiore al totale da pagare, l'ordine viene annullato. Utile per chi vuole apprendere i concetti di comunicazione tra client e server utilizzando java.

Tipologia: Esercizi

2021/2022

Caricato il 06/06/2022

lorenzo-bruno-17
lorenzo-bruno-17 🇮🇹

1 documento

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Client e Server in Java
Client
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws IOException{
//
InetAddress ip = InetAddress.getLocalHost();
int port = 8080;
Scanner scanner = new Scanner(System.in);
//
Socket socket = new Socket(ip, port);
DataInputStream dataInputStream = new
DataInputStream(socket.getInputStream());
DataOutputStream dataOutputStream = new
DataOutputStream(socket.getOutputStream());
//
while(true){
System.out.println("- Profumo ALFA: Cod A / prezzo 2,70 \n" +
"- Profumo BETA: Cod B / prezzo 4,50 \n" +
"- Colore Capelli Biondo: Cod CB / prezzo 6,40 \n" +
"- Colore Capelli Testa di Moro: Cod CTM / prezzo
7,25 \n" +
"- Colore Capelli Corvino: Cod CC / prezzo 4,67 \n" +
"- Colore Capelli Rosso: Cod CR / prezzo 6,44 \n" +
"- Rossetto: Cod R / prezzo 9,45 \n" +
"- Fard: Cod F / prezzo 4,98 \n" +
"- Dopobarba: Cod D / prezzo 7,85 \n" +
"- Schiuma per Barba: Cod S / prezzo 3,95 \n");
//
System.out.println("Inserisci Nome cliente , Codece prodotto,
Quantità, Soldi per pagare...");
//prende e invio le info al server
String invio = scanner.nextLine();
dataOutputStream.writeUTF(invio);
//prendo la risposta dal server e la stampo
String risposta = dataInputStream.readUTF();
System.out.println(risposta);
}
}
}
Server
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.StringTokenizer;
pf3
pf4

Anteprima parziale del testo

Scarica Comunicazione tra Client e Server in Java: un esempio di implementazione e più Esercizi in PDF di Informatica solo su Docsity!

Client e Server in Java Client import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.util.Scanner; public class Client { public static void main(String[] args) throws IOException{ // InetAddress ip = InetAddress.getLocalHost(); int port = 8080; Scanner scanner = new Scanner(System.in); // Socket socket = new Socket(ip, port); DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream()); // while(true){ System.out.println("- Profumo ALFA: Cod A / prezzo 2,70 \n" + "- Profumo BETA: Cod B / prezzo 4,50 \n" + "- Colore Capelli Biondo: Cod CB / prezzo 6,40 \n" + "- Colore Capelli Testa di Moro: Cod CTM / prezzo 7,25 \n" + "- Colore Capelli Corvino: Cod CC / prezzo 4,67 \n" + "- Colore Capelli Rosso: Cod CR / prezzo 6,44 \n" + "- Rossetto: Cod R / prezzo 9,45 \n" + "- Fard: Cod F / prezzo 4,98 \n" + "- Dopobarba: Cod D / prezzo 7,85 \n" + "- Schiuma per Barba: Cod S / prezzo 3,95 \n"); // System.out.println("Inserisci Nome cliente , Codece prodotto, Quantità, Soldi per pagare..."); //prende e invio le info al server String invio = scanner.nextLine(); dataOutputStream.writeUTF(invio); //prendo la risposta dal server e la stampo String risposta = dataInputStream.readUTF(); System.out.println(risposta); } } } Server import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.StringTokenizer;

public class Server { public static void main(String args[]) throws IOException{ // ServerSocket serverSocket = new ServerSocket(8080); Socket socket = serverSocket.accept(); // DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream()); // while (true){ //ricezione dati e divisione String string = dataInputStream.readUTF(); StringTokenizer tokenizer = new StringTokenizer(string); String name = tokenizer.nextToken(); String CodProd = tokenizer.nextToken(); double Quant = Integer.parseInt(tokenizer.nextToken()); double SoldPag = Integer.parseInt(tokenizer.nextToken()); // double resto = 0; StringBuilder ordine = new StringBuilder(); // switch (CodProd){ case "A": //2, if ((Quant * 2.70) < SoldPag){ resto = SoldPag - (Quant * 2.70); ordine = new StringBuilder("La consegna di " + Quant + "di Profumo Alfa è in corso con £" + resto + "di resto."); } else{System.out.println(name + " " + "il tuo ordine è stato annulato.");} break; case "B": //4, if ((Quant * 4.50) < SoldPag){ resto = SoldPag - (Quant * 4.50); ordine = new StringBuilder("La consegna di " + Quant + "di Profumo Beta è in corso con £" + resto + "di resto."); } else{System.out.println(name + " " + "il tuo ordine è stato annulato.");} break; case "CB": //6, if ((Quant * 6.40) < SoldPag){ resto = SoldPag - (Quant * 6.40); ordine = new StringBuilder("La consegna di " + Quant + "di Colore capelli biondo è in corso con £" + resto + "di resto."); } else{System.out.println(name + " " + "il tuo ordine è stato annulato.");} break; case "CTM": //7, if ((Quant * 7.25) < SoldPag){ resto = SoldPag - (Quant * 7.25);

ordine = new StringBuilder("La consegna di " + Quant + "di Schiuma per barba è in corso con £" + resto + "di resto."); } else{System.out.println(name + " " + "il tuo ordine è stato annulato.");} break; } // dataOutputStream.writeUTF(ordine.toString()); } } }