Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-07-2007, 18:12   #1
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
[Java] Appello Reti di Calcolatori

Ciao a tutti, di seguito riporto la traccia di un esercizio di un vecchio appello di reti di calcolatori della mia università:

Quote:
Si vuole realizzare un’applicazione Director capace di gestire una serie di attività eseguibili parallelamente.
Il sistema è composto da un coordinatore centrale, chiamato Master, e da un numero N di macchine,
chiamate Slave, che eseguono tutte lo stesso tipo di attività. Ogni Slave può eseguire una sola attività. Il
Master attende la richiesta di un client e, una volta ricevuta, individua se possibile uno Slave libero e lo
contatta per dare inizio all’attività. Se tutte le macchine Slave sono occupate il Master risponde
immediatamente al client inviando la stringa “SYSTEM BUSY”.
Per avviare l’attività di una macchina Slave, il Master deve semplicemente inviargli la stringa “START
ACTIVITY”. Il Master attende la fine dell’attività della macchina Slave e poi avvisa il client inviando la
stringa “ACTIVITY OVER”.
Si richiede di implementare in Java :
− una classe per la gestione del modulo Master (IP: 150.100.100.100 TCP port: 1111).
− una classe per la gestione delle macchine Slave (IP: 150.100.100.10x TCP port: 2222, con
x = 1….N ).
Vorrei sapere, per favore, se secondo voi potrebbe andare bene questa mia soluzione...

Classe Slave da installare su ogni singola macchina Slave:
Codice:
import java.net.*;
import java.io.*;
import java.util.*;

public class Slave{
	public static final int PORT=2222;

	public static void main(String args[]){
		try{
			while(true){
				ServerSocket serverSocket=new ServerSocket(PORT);
				//attesa comando
				Socket socket=serverSocket.accept();

				//creazione stream in input
				BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
				//creazione stream in output
				BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
				PrintWriter out=new PrintWriter(bw, true);

				//controllo comando
				if(in.readLine().equals("START ACTIVITY")){
					Thread.sleep(15000); //simulo lo svolgimento dell'attività
					out.println("ACTIVITY OVER");
				}else{
					out.println("COMMAND ERROR");
				}
				//chiudo le risorse
				in.close();
				out.close();
				serverSocket.close();
				socket.close();
			}//while

		}catch(Exception e){ System.out.println(e); }
	}//run
}
Classe Master da installare sulla macchina master
Codice:
import java.net.*;
import java.util.*;
import java.io.*;

public class Master{
	public static void main(String args[]){
		int nSlave=9;
		boolean slaveLiberi[]=new boolean[nSlave];

		//inizialmente tutti liberi
		for(int i=0; i<nSlave; i++){
			slaveLiberi[i]=true;
		}

		try{
			while(true){
				//creo il datagram socket sulla porta 1111
				DatagramSocket ds=new DatagramSocket(1111);
				byte buf[]=new byte[256];
				DatagramPacket packet=new DatagramPacket(buf, buf.length);
				//mi metto in attesa di una richiesta
				ds.receive(packet);

				//arrivata la richiesta controllo se ci sono slave liberi
				int x=-1;
				for(int i=0; i<nSlave; i++){
					if(slaveLiberi[i]==true){
						x=i;
						slaveLiberi[i]=false;
						break;
					}
				}

				//se non ce ne sono
				if(x==-1){
					String s="SYSTEM BUSY";
					buf=s.getBytes();

					//prendo indirizzo e porta del richiedente e gli invio SYSTEM BUSY
					InetAddress address=packet.getAddress();
					int portClient=packet.getPort();
					DatagramPacket packet2=new DatagramPacket(buf, buf.length, address, portClient);
					ds.send(packet2);

				}else{ //se c'è uno slave libero creo la connessione verso di lui
					String ipSlave="150.100.100.10"+x;
					InetAddress addressSlave=InetAddress.getByName(ipSlave);
					Socket socket=new Socket(addressSlave, 2222);
					String s="START ACTIVITY";
					BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
					PrintWriter out=new PrintWriter(bw, true);
					out.println(s); //gli invio il comando di partire

					//attendo risposta
					BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
					System.out.println(in.readLine());
				}
			}//while

		}catch(Exception e){
			System.out.println(e);
		}
	}

}
Il compilatore non da errori, però non posso provarlo runtime... per questo chiedo a voi ...grazie
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
Al regalo di San Valentino ci pensa HUAW...
Intel multata in India: 30 milioni di do...
Beast of Reincarnation ha una data di us...
Provati Reno15 e Reno15 FS: analisi comp...
L'Europa sfida la Cina sul litio: in Fin...
Sono 32, di cui 6 nuove, le offerte Amaz...
Rinnovo dei coupon Amazon nascosti: ecco...
Corsair aggiorna la confezione delle RAM...
Ecco tutti i robot aspirapolvere in offe...
Tachyum: dal processore universale alle ...
L'eVTOL tedesco per missioni mediche e m...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v