<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://didawiki.cli.di.unipi.it/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>DidaWiki - lpr-b-2007-2008</title>
        <description></description>
        <link>https://didawiki.cli.di.unipi.it/</link>
        <lastBuildDate>Sun, 10 May 2026 19:06:14 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://didawiki.cli.di.unipi.it/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
            <title>DidaWiki</title>
            <link>https://didawiki.cli.di.unipi.it/</link>
        </image>
        <item>
            <title>Risultati scritto terzo appello AEb A.A. 2007-2008</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/ae1b3o0708</link>
            <description>Risultati scritto terzo appello AEb A.A. 2007-2008
 Matricola  Giudizio  408679  discreto  290669  insufficiente  209147  insufficiente  276459  insufficiente  236134  quasi sufficiente  201376  quasi sufficiente  290455  sufficiente  403149  discreto</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/alternating</link>
            <description>&lt;code java&gt;
package TestIngresso;

public class Alternating {
/**
 * @param args
 */
public static void main(String[] args) {

	AlternatingProtocol ap = new AlternatingProtocol();
	
	IlThread t1 = new IlThread(ap,0);
	IlThread t2 = new IlThread(ap,1);
	
	t1.start();
	t2.start();</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/alternatingprotocol</link>
            <description>package TestIngresso;

public class AlternatingProtocol {

	public synchronized void P() {
		try {
			wait();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	public synchronized void V() {
		notify();
	}

}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Home page didattica 2007--2008</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/avvisi</link>
            <description>Home page didattica 2007--2008

Marco Danelutto

Corsi A.A. 2007--2008



	*  AA0008 Architetture degli Elaboratori (Corso B) 
	*  AA0018 Laboratorio di Programmazione di Rete (Corso B) 

Orario di ricevimento
 Giorno  Orario  Luogo Lunedì   15-18   Stanza 364, Dipartimento di Informatica</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:17:48 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/battitoreasta</link>
            <description>package astaRMI;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.HashMap;
import java.util.Iterator;

public class Battitore extends UnicastRemoteObject implements InterfacciaBattitore   {

	protected Battitore() throws RemoteException {
		super();
	}

	private static final long serialVersionUID = -8624867101274666805L;

	int offertaCorrente = 0; 
	String vincitore = &quot;&quot;; 
	HashMap&lt;String,ClientInterface&gt; clienti = new HashMap&lt;String,ClientInterface&gt;…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/callbackasta</link>
            <description>package astaRMI;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ClientInterface extends Remote {
	public void offer(int howMuch) throws RemoteException; 
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/cat</link>
            <description>package TestIngresso;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class CatN {

	/**
	 * metodo dell&#039;oggetto CatN&lt;br&gt;Il metodo non e&#039; dichiarato statico, dal momento che utilizziamo nel main un oggetto CatN per 
	 * richiamarlo. Usare un metodo statico solo perche&#039; si chiama nel main non e&#039; corretto, in generale, anche se puo&#039; non provocare 
	 * errori in fase di esecuzione. 
	 * 
	 * @param is rappresenta…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/ccremoto</link>
            <description>package ccRMI;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class CC extends UnicastRemoteObject implements InterfacciaCC {


	private static final long serialVersionUID = 1L;

	private long cc = 0L;

	protected CC() throws RemoteException {
		super();
	}

	public synchronized long prelievo(long quanto) throws RemoteException {
		if(quanto &lt;= cc) {
			cc -= quanto;
			return (cc);
		} else 
			return -cc;
	}

	public synchronized long saldo() throws Remot…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/clienteasta</link>
            <description>package astaRMI;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Client implements ClientInterface {

	public void offer(int howMuch) throws RemoteException {
		System.out.println(&quot;The current offer is &quot;+howMuch);
		return;
	}

	…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/clientecc</link>
            <description>package ccRMI;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		if(args.length==0) {
			System.out.println(&quot;java Client hostRMI nomeOggetto [s|v|p] [somma]&quot;);
			return;
		}
			InterfacciaCC icc = null; 
		try {
			String rmiUrl = &quot;rmi://&quot;+args[0]+&quot;:&quot;+Pubblicatore.porta+&quot;/&quot;+args[1];
			System.out.println(&quot;Lookup di &quot;+rmi…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/clientupload</link>
            <description>package trasferimentoFile;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

	public static final int MAXBUFFER = 512;

	/**
	 * @param args nomeHostPozzo 
	 */
	public static void main(String[] args) {

		String hostname = args[0]; 
		String filename = args[1];
		InetAddress hostIp = null;
		try {
			host…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/codicelettore</link>
            <description>import client.*;
import java.io.*;
public class CopyOut {

        public static void main(String[] args) {
                try {
                        System.out.println(&quot;Opening remote file ...&quot;);
                        RemoteInputStream ris = new RemoteInputStream(args[0]);
                        System.out.println(&quot;Opening local file ...&quot;);
                        FileOutputStream  los  = new FileOutputStream(args[0]);
                        final int MAXBUF = 1024; 
                   …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/codiceprotocoltesterurl</link>
            <description>package url;

import java.net.URL;

public class ProtocolTester {

  public static void main(String[] args) {

    String host = args[0];
    String file = &quot;/index.html&quot;;

    String[] schemes = { &quot;http&quot;, &quot;https&quot;, &quot;ftp&quot;, &quot;mailto&quot;, &quot;telnet&quot;, &quot;file&quot;, &quot;ldap&quot;, &quot;gopher&quot;,
        &quot;jdbc&quot;, &quot;rmi&quot;, &quot;jndi&quot;, &quot;jar&quot;, &quot;doc&quot;, &quot;netdoc&quot;, &quot;nfs&quot;, &quot;verbatim&quot;, &quot;finger&quot;, &quot;daytime&quot;,
        &quot;systemresource&quot; };

    for (int i = 0; i &lt; schemes.length; i++) {
      try {
        URL u = new URL(schemes[i], host, file);
 …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/codicescrittore</link>
            <description>import java.io.*;
import client.*;

public class CopyIn {

        public static void main(String[] args) {
                try {
                        System.out.println(&quot;Opening remote file ...&quot;);
                        RemoteOutputStream ros = new RemoteOutputStream(args[0],Boolean.parseBo
olean(args[1]));
                        System.out.println(&quot;Opening local file ...&quot;);
                        FileInputStream        is  = new FileInputStream(args[0]);
                        final int…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Consegne LPRb 6o appello</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/consegnelprb</link>
            <description>Consegne LPRb 6o appello

	*  Le discussioni di 
      Bruno Zizi    
      Nino Pucci
      Alessandro Martelli
      Chiara Mannarino
      Edoardo Zambonini
      Cristian Lorenzini
  
si terranno presso il mio studio martedì 9 ottobre, alle ore 9.30 (contate ca. venti minuti/mezz&#039;ora a persona)</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/copyin</link>
            <description>package chatMulticast;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;

public class CopyIn extends Thread {

	int chatPort = 0; 
	InetAddress chatAddress = null; 

	final int MAXBUF = 1024; 

	public  CopyIn(InetAddress ia, int port) {
		chatPort = port;
		chatAddress = ia; 
	}

	public void run() {
		MulticastSocket ds = null;
		try {
			ds = new MulticastSocket(chatPort);
		} catch (IOException e) {
			e.printStackTrac…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/copyout</link>
            <description>package chatMulticast;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class CopyOut extends Thread {

	InetAddress chatAddress = null; 
	int chatPort = 0; 
	
	public CopyOut(InetAddress chat, int port) {
		chatAddress = chat;
		chatPort = port; 
	}
	
	public void run() {
		DatagramSocket ds = null;
		try {
			ds = new…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/copythreadmessanger</link>
            <description>package instantMessanger;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.SocketException;

public class CopyThread extends Thread {

	InputStream is = null; 
	OutputStream os = null; 
	PrintStream ps = null; 
	String quale = null; 
	
	public CopyThread(InputStream is, OutputStream os, String quale) {
		this.is = is; 
		this.os = os; 
		this.quale = q…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/datagrampacket</link>
            <description>/*
 * Created on Nov 23, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package UnreliableNetwork;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocketImpl;
import java.net.InetAddress;
import java.net.SocketAddress;
import java.net.SocketException;

/**
 * @author marcod
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Jav…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>LPRb 2007--2008: Esercizi assegnati a lezione</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/esercizi</link>
            <description>LPRb 2007--2008: Esercizi assegnati a lezione

Torna alla pagina principale del corso

Test di ingresso

	*  Si realizzi un programma Java che si comporta come il comando Unix cat (il programma deve copiare quanto letto dallo standard input sullo standard output) da completare in 10 minuti</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>F.A.Q. e note sul progetto conclusivo LPRb 07-08</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/faqprogetto</link>
            <description>F.A.Q. e note sul progetto conclusivo LPRb 07-08

	*  Giugno 2008 - FSCK Nel testo del progetto si parla di controllare che esistano le k copie richieste per ognuno dei file. In realtà va controllato che le copie esistano e siano consistenti. Qualora le copie esistano, ma non siano uguali, occorre provvedere alle opportune azioni correttive.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/generatoretermina</link>
            <description>package threadPoolConTerminazione;

public class Generatore extends Thread {

	Repository&lt;Integer&gt; rep = null; 
	int n = 10;
	final int DELAY = 1000;
	final float RANGE = (float) 1024.00;

	/**
	 * costruttore
	 * @param n numero di oggetti da generare
	 * @param tasks repository nel quale depositare gli oggetti generati 
	 */
	public Generatore(int n, Repository&lt;Integer&gt; tasks) {
		this.rep = tasks; 
		this.n = n;
	}

	/**
	 * corpo del thread generatore: ciclo finito che genera interi compresi…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/ilserver</link>
            <description>package nfs;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.HashMap;

public class NfsServer {

	public static final int port = 23232; 
	public static int key=0;
	private HashMap&lt;String,StreamRef&gt; handles = null; 

	public NfsServer() {
		handl…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/ilthread</link>
            <description>&lt;code java&gt;
package TestIngresso;

public class IlThread extends Thread {
AlternatingProtocol ap = null; 
int order = 0; public IlThread(AlternatingProtocol ap, int order) {
	this.ap = ap; 
	this.order = order;
}public void run() {
	if(order == 0) {
		ap.P();
	}
	while(true) {
		System.out.println(this.getName() + &quot; sbloccato&quot;);
		int secs = ((int) (Math.random() * 10.0));
		while(secs &gt; 0) {
			try { 
				Thread.sleep(1000);
			} catch(InterruptedException e) {
				e.printStackTrace();
			}
			…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/interfacciabattitoreasta</link>
            <description>package astaRMI;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface InterfacciaBattitore extends Remote {

	/** 
	 * used to make an offer. 
	 * @param name the name of who makes the offer
	 * @param howMuch the amount of the offer
	 * @return the current amount offered, 0 if the offer made is the currently accepted one
	 * @throws RemoteException
	 */
	public int offer(String name, int howMuch) throws RemoteException;
	
	/**
	 * this is used to register the callback;
	 …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/interfacciacc</link>
            <description>package ccRMI;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface InterfacciaCC extends Remote {
	
	public long saldo() throws RemoteException; 
	public long prelievo(long quanto) throws RemoteException; 
	public long versa(long quanto) throws RemoteException; 

}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/mainbattitore</link>
            <description>package astaRMI;

import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class ServerAsta {

	public static void main(String[] args) {

		Battitore b = null;
		try {
			b = new Battitore();
		} catch (RemoteException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
		Registry reg = null; 

		try {
			reg = LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
		} catch (RemoteException e1) {
			// TODO Auto-generated catch …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/mainccremote</link>
            <description>package ccRMI;

import java.rmi.AccessException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Pubblicatore {

	public static final int porta = 23232; 
	
	public static void main(String[] args) {
		
		if(args.length==0) {
			System.out.println(&quot;java Pubblicatore nomeOggettoRMI&quot;);
			return;
		}
		CC cc = null; 
		try {
			cc = new CC();
		} catch(RemoteException e) {
			System.out.println(&quot;Eccezione RemoteException a ca…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/mainchat</link>
            <description>package chatMulticast;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Chat {

	public static void main(String[] args) {	
		
		try {
			InetAddress chatAddress = InetAddress.getByName(args[0]);
			int port = Integer.parseInt(args[1]);
			CopyIn copyIn = new CopyIn(chatAddress,port);
			CopyOut copyOut = new CopyOut(chatAddress,port);
			copyIn.start();
			copyOut.start();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}

	}

}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/maintermina</link>
            <description>package threadPoolConTerminazione;


public class ProvaThreadPool {

	public static void main(String[] args) {

		final int N = 8;
		final int T = 4; 
		
		Repository&lt;Integer&gt; tasks = new Repository&lt;Integer&gt;();
		Repository&lt;Integer&gt; results = new Repository&lt;Integer&gt;();
		FunzioneSemplice funz = new FunzioneSemplice();
		ComputerThread[] ct = new ComputerThread[T];
		
		Generatore generatore = new Generatore(N,tasks);
		Stampatore&lt;Integer&gt; stampatore = new Stampatore&lt;Integer&gt;(results);
		generato…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/maintpconcurdue</link>
            <description>package threadPoolConcurrencyDue;

import java.util.concurrent.*;


public class ProvaThreadPool {

	public static void main(String[] args) {

		final int N = 16;		// numero dei task da calcolare
		final int T = 4;		// numero minimo di thread nel pool 
		final int MAX_T = 8;    // numero massimo di thread nel pool 

		ThreadPoolExecutor tpe = null; 		// creazione dell&#039;esecutore
		tpe = new ThreadPoolExecutor(T,MAX_T,10000L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue&lt;Runnable&gt;());

		// creazi…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/maintpconcurr</link>
            <description>package threadPoolConcurrency;

import java.util.concurrent.*;


public class ProvaThreadPool {

	public static void main(String[] args) {

		final int N = 16;		// numero dei task da calcolare
		final int T = 4;		// numero minimo di thread nel pool 
		// final int MAX_T = 8;    // numero massimo di thread nel pool 

		ExecutorService tpe = null; 		// creazione dell&#039;esecutore
		tpe = // new ThreadPoolExecutor(T,MAX_T,10000L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue&lt;Runnable&gt;());
			Executors…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/messangermain</link>
            <description>package instantMessanger;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;

public class Messanger {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final int PORTA = 17191;
		final int DELAY = 5000;
		final int VARIA = 1000;

		ServerSocket ss = null; 
		try {
			ss = new ServerSocket(PORTA);
		} catch (IOException e) {
			System…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/metodistatici</link>
            <description>package TestIngresso;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class MetodiStatici {

	
	public static void main(String [] args) {
		
		String className = null; 
		try {
			className = args[0];
		} catch(ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
			return;
		}
		try {
			Class classe = Class.forName(className);
			Method [] metodi = classe.getDeclaredMethods();
			for(int i=0; i&lt; metodi.length; i++) {
				System.out.print(&quot;metodo &quot;+i+&quot; &quot;+meto…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/namequery</link>
            <description>package nslookup;

import java.io.Serializable;

/** this is the class used to model requests to the name server 
 * 
 * @author marcod
 *
 */
public class NameQuery implements Serializable {
        
        /** will host the name of the queryed host */
        String hostName = null; 
        /** true if we accept an answer from cache */
        boolean cached = false; 
        
        public NameQuery(String h, boolean b) {
                hostName = h; 
                cached = b;
        }…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/nameserver</link>
            <description>package nslookup;

import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class NameServer {

        public static final int NAMESERVERPORT = 54321;

        public static final int MAXTHREADS = 4;

        /**
         * @param args
 …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Note (LPRb 2007--2008)</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/note</link>
            <description>Note (LPRb 2007--2008)

Configurazione dell&#039;ambiente Java

Al centro di calcolo esistono tre versioni di Java: la 1.4, la 1.5 e la 1.6. 
Per far sì che la versione utilizzata sia la 1.x, procedere come segue:

	*  se usate bash, nel file .bashrc nella vostra home, inserite le due righe che seguono (alla fine del file):</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/nslookup</link>
            <description>package nslookup;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Nslookup {

        /**
         * @param args
         */
        public static void main(String[] args) {

                if(args.length == 0) {
                        System.out.println(&quot;Usage is:\njava Nslookup nameserver hostname [true!false]&quot;);
                        re…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/odp</link>
            <description>/**
 * @author Danelutto Marco
 *
 * Questa classe permette la serializzazione e deserializzazione di oggetti nei DatagramPacket. 
 * Per spedire un oggetto serializzato in un DatagramPacket, si crea un oggetto ODP con il costruttore
 * ODP(Object o). Successivamente si utilizza il metodo DatagramPacket getDatagramPacket(InetAddress address, int 
port) 
 * per ottenere il datagram packet da spedire, che contiene l&#039;oggetto o serializzato nel payload.
 * 
 * Per ricevere un oggetto serializzato in…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/odpclass</link>
            <description>/**
 * @author Danelutto Marco
 *
 * Questa classe permette la serializzazione e deserializzazione di oggetti nei DatagramPacket. 
 * Per spedire un oggetto serializzato in un DatagramPacket, si crea un oggetto ODP con il costruttore
 * ODP(Object o). Successivamente si utilizza il metodo DatagramPacket getDatagramPacket(InetAddress address, int port) 
 * per ottenere il datagram packet da spedire, che contiene l&#039;oggetto o serializzato nel payload.
 * 
 * Per ricevere un oggetto serializzato in …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Progetto conclusivo LPRb A. A. 2007-2008</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/progettolprb0708</link>
            <description>Progetto conclusivo LPRb A. A. 2007-2008

Testo del progetto

[Prima versione] del progetto. [Seconda versione] Seconda versione del progetto (modifiche sui nomi delle classi per rendere consistente il codice delle interfacce con il testo del progetto, e piccola modifica sul flow chart dell&#039;apertura per la scrittura).</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/queryanswer</link>
            <description>package nslookup;

import java.io.Serializable;
import java.net.InetAddress;

public class QueryAnswer implements Serializable {

        InetAddress ia = null; 
        String hostName = null; 
        boolean valid = false;
        
        public QueryAnswer(String h, InetAddress i) {
                ia = i; hostName = h;
                valid = true;
        }
        
        public QueryAnswer() {
                valid = false; 
        }

        public String getHostName() { 
           …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/receiver</link>
            <description>/*
 * Created on Nov 21, 2003
 *
 * To change the template for this generated file go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
package TFTPudp;

import java.io.FileOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.logging.Logger;

/**
 * @author Danelutto Marco
 *
 * Questa classe &lt;8F&gt; la classe che implementa il ricevitore del file. 
 * Va invocata con il nome del file da ricevere come parametro
 * 
 */
public c…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/remoteinputstream</link>
            <description>package nfs;
import java.net.DatagramPacket;

public class RemoteInputStream extends RemoteStream{

	public RemoteInputStream(String serverName) {
		super(serverName);
	}

	public byte[] read(int len) {
		UDPServerComm comm = new UDPServerComm(serverName, NfsServer.port);
		DatagramPacket dp = RemotePacket.RemotePacket(&quot;READ&quot;,handle,(new Integer(len)).toString());
		// packet received: contains the String remote handle
		DatagramPacket answer = comm.call(dp);
		if(answer == null) 
			return null…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/remoteoutputstream</link>
            <description>package nfs;

import java.net.DatagramPacket;

public class RemoteOutputStream extends RemoteStream{

	public RemoteOutputStream(String serverName) {
		super(serverName);
	}


	public boolean write(byte[] buff) {
		// TODO Auto-generated method stub
		UDPServerComm comm = new UDPServerComm(serverName, NfsServer.port);
		DatagramPacket dp = RemotePacket.RemotePacket(&quot;WRITE&quot;,handle,new String(buff));
		// packet received: contains the String remote handle
		DatagramPacket answer = comm.call(dp);
	…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/remotepacket</link>
            <description>package nfs;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.DatagramPacket;

public class RemotePacket {
	
	public final static int MAXPACKET = 1024;
	
	String op = null;
	String [] args = null;
	DatagramPacket dp = null; 
	
	public static DatagramPacket RemotePacket(String op, String ... params) {
		/* creates a datagram packet giv…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/remotestream</link>
            <description>package nfs;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class RemoteStream {
	final int MAX = 4096;
	String serverName = null; // name of the remote server
	String filename = null;   // name of the remote file
	DatagramSocket ds = null; // the socket used to send data
	InetAddress serverAddress = null;
	String handle = null;

	public RemoteStream(String serverName) {
		this.serverName = serverName;
	}

	public boolean open(String filenam…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/repositorytermina</link>
            <description>package threadPoolConTerminazione;

import java.util.LinkedList;

/**
 * classe che implementa il repository delle cose da calcolare
 * @author marcod
 */

public class Repository&lt;T&gt; {

	private LinkedList&lt;T&gt; ll = null; 
	boolean eos = false; 
	
	public Repository() {
		super();
		ll = new LinkedList&lt;T&gt;();
	}

	/**
	 * inserzione di un elemento nel pool
	 * @param data il dato da inserire
	 */
	public synchronized void insert(T data) { 
		ll.add(data); 
		notify();
	} 

	/**
	 * estrazione dell&#039;…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Risultati 1a prova di verifica di Architetture degli elaboratori (Corso B)</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/risc1</link>
            <description>Risultati 1a prova di verifica di Architetture degli elaboratori (Corso B)


Matricola	Giudizio
271518	insufficiente
408679	sufficiente
290727	insufficiente
292087	quasi sufficiente
294700	insufficiente
290728	sufficiente
412006	ottimo
251560	quasi sufficiente
291271	quasi sufficiente
271169	discreto
291754	ottimo
201376	insufficiente
409957	insufficiente
235960	discreto
290455	sufficiente
291113	quasi sufficiente
271056	sufficiente
266073	discreto
408310	insufficiente
234516	insufficiente
24697…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/sender</link>
            <description>/*
 * Created on Nov 17, 2003
 *
 * To change the template for this generated file go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
package TFTPudp;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * @author Danelutto Marco
 *
 * Questa &lt;8F&gt; la classe che si usa per spedire un file. 
 * Il nome del file da spedire e&#039; passato come primo paramet…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/serverthread</link>
            <description>package nslookup;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;

public class ServerThread extends Thread {

        Map&lt;String,InetAddress&gt; cache = null;
        Socket s = null; 

        public ServerThread(Map&lt;String,InetAddress&gt; c, Socket ts) {
                cache = c;
                s = ts; 
        }

        public void run() {
      …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/serverupload</link>
            <description>package trasferimentoFile;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

	public static final int PORTA = 12345;
	private static final int MAXBUFFER = 1024;
	private static final int MAXNAMELEN …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/serveruploadbuffered</link>
            <description>package trasferimentoFile;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDue {

	public static final int PORTA = 12345;
	private static final int MAXBUFFER = 1024;
	private static final int MAXNAMELEN = 1024;

	/**
	 * @param args
	 */
	public static voi…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/sorgenteodp</link>
            <description>/**
 * @author Danelutto Marco
 *
 * Questa classe permette la serializzazione e deserializzazione di oggetti nei DatagramPacket. 
 * Per spedire un oggetto serializzato in un DatagramPacket, si crea un oggetto ODP con il costruttore
 * ODP(Object o). Successivamente si utilizza il metodo DatagramPacket getDatagramPacket(InetAddress address, int port) 
 * per ottenere il datagram packet da spedire, che contiene l&#039;oggetto o serializzato nel payload.
 * 
 * Per ricevere un oggetto serializzato in …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/stampatoretermina</link>
            <description>package threadPoolConTerminazione;


public class Stampatore&lt;T&gt; extends Thread {

	Repository&lt;T&gt; rep;
	
	public Stampatore(Repository&lt;T&gt; results) {
		this.rep = results; 
	}
	
	public void run() {
		while(true) {
			T i;
			try {
				i = rep.extract();
				System.out.println(&quot;Estratto &quot;+i.toString());
			} catch (EndOfStreamException e) {
				e.printStackTrace();
			} catch (InterruptedException e) {
				// fine lavori 
				return;
			}
			
		}
	}
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/stampatoretpconcurdue</link>
            <description>package threadPoolConcurrencyDue;

import java.util.concurrent.*;
public class Stampatore&lt;T&gt; extends Thread {

	
	LinkedBlockingQueue&lt;T&gt; rep;
	
	public Stampatore(LinkedBlockingQueue&lt;T&gt; results) {
		this.rep = results; 
	}
	
	public void run() {
		while(true) {
			T i;
			try {
				i = rep.take();
				System.out.println(&quot;Estratto &quot;+i.toString());
			}  catch (InterruptedException e) {
				// fine lavori 
				return;
			}
			
		}
	}
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Laboratorio di Programmazione di Rete - corso B</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/start</link>
            <description>Laboratorio di Programmazione di Rete - corso B

Docenti: Marco Danelutto e Sonia Campa

avvisi relativi all&#039;ultimo appello (6o appello 07-08) del corso

Programma del corso

Il corso si pone l’obiettivo di fornire le conoscenze necessarie per l&#039;utilizzo di Socket (indirizzi, URL, socket TCP e UDP, modelli connection- oriented e connectionless, comunicazioni punto a punto, multicast e broadcast, modello client/server). Saranno inoltre presentate le caratteristiche base di modelli di programmazio…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 25 Sep 2008 19:49:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/streamref</link>
            <description>package nfs;

import java.io.InputStream;
import java.io.OutputStream;

public class StreamRef {
	InputStream in; 
	OutputStream out;
	public StreamRef(InputStream in, OutputStream out){
		this.in = in;
		this.out = out;
	}
	public InputStream getIn(){
		return this.in;
	}
	public OutputStream getOut(){
		return out;
	}
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/taskduec</link>
            <description>package threadPoolConcurrencyDue;

import java.util.concurrent.LinkedBlockingQueue;

public class Task&lt;T,R&gt; implements Runnable {

	Compute&lt;T,R&gt; fun = null; 
	T task = null; 
	LinkedBlockingQueue&lt;R&gt; results = null; 
	
	public Task(T task, Compute&lt;T,R&gt;fun, LinkedBlockingQueue&lt;R&gt; results) {
		this.fun = fun; 
		this.task = task;
		this.results = results; 
	}
	
	public void run() {
		R result = fun.compute(task);
		try {
			results.put(result);
		} catch (InterruptedException e) {
			e.printStackTr…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/tasktpconcurr</link>
            <description>package threadPoolConcurrency;

public class Task&lt;T,R&gt; implements Runnable {

	Compute&lt;T,R&gt; fun = null; 
	T task = null; 
	Repository&lt;R&gt; results = null; 
	
	public Task(T task, Compute&lt;T,R&gt;fun, Repository&lt;R&gt; results) {
		this.fun = fun; 
		this.task = task;
		this.results = results; 
	}
	
	public void run() {
		R result = fun.compute(task);
		results.insert(result);
		return;
	}

}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/testritornocarrello</link>
            <description>package characters;

import java.io.IOException;

public class Mai {

	/**
	 * @param args programma senza argomenti, serve per &quot;vedere&quot; i codice
	 * dei caratteri battuti da tastiera, ed in particolare per capire quale 
	 * sia il codice da testare per il ritorno carrello
	 * 
	 */
	public static void main(String[] args) {
		
		byte[] b = new byte[1024];
		int i = 0;
		while(true) {
			try {
				b[i] = (byte) System.in.read();
			} catch (IOException e) {
				e.printStackTrace();
			}
			System…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/tftmessageclass</link>
            <description>/*
 * Created on Nov 21, 2003
 *
 * To change the template for this generated file go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
package TFTPudp;

import java.io.Serializable;

/**
 * @author Danelutto Marco
 *
 * To change the template for this generated type comment go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
public class TFTPmessage implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/tftpmessage</link>
            <description>/*
 * Created on Nov 21, 2003
 *
 * To change the template for this generated file go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
package TFTPudp;

import java.io.Serializable;

/**
 * @author Danelutto Marco
 *
 * To change the template for this generated type comment go to
 * Window&amp;gt;Preferences&amp;gt;Java&amp;gt;Code Generation&amp;gt;Code and Comments
 */
public class TFTPmessage implements Serializable {

        /**
         * 
         */
        private static …</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/threadcomputecalcolatore</link>
            <description>package threadPool;

public class ComputerThread&lt;T, S&gt; extends Thread {

	Repository&lt;T&gt; tasks = null;

	Repository&lt;S&gt; results = null;

	Compute&lt;T, S&gt; function = null;

	public ComputerThread(Repository&lt;T&gt; tasks, Repository&lt;S&gt; results,
			Compute&lt;T, S&gt; function) {
		this.tasks = tasks;
		this.results = results;
		this.function = function;
		return;
	}

	public void run() {
		while (true) {
			T task = tasks.extract();
			try {
				int random = ((int) (Math.random() * 5000.00));
				System.out.pri…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/threadpoolcompute</link>
            <description>package threadPool;

public interface Compute&lt;T,S&gt; {
	
	public S compute(T x);
	
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/threadpoolfunzione</link>
            <description>package threadPool;

public class FunzioneSemplice implements Compute&lt;Integer,Integer&gt; {

	public Integer compute(Integer x) {
		int i = x.intValue() + 1;
		return new Integer(i);
		// return (++x);
	}
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/threadpoolrepository</link>
            <description>package threadPool;

import java.util.LinkedList;

/**
 * classe che implementa il repository delle cose da calcolare
 * @author marcod
 */

public class Repository&lt;T&gt; {

	private LinkedList&lt;T&gt; ll = null; 
	
	public Repository() {
		super();
		ll = new LinkedList&lt;T&gt;();
	}
	
	/**
	 * inserzione di un elemento nel pool
	 * @param data il dato da inserire
	 */
	public synchronized void insert(T data) { 
		ll.add(data); 
		notify();
	} 
	
	/**
	 * estrazione dell&#039;elemento più vecchio dal pool 
	 * @…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/threadtermina</link>
            <description>package threadPoolConTerminazione;

public class ComputerThread&lt;T,S&gt; extends Thread {

	Repository&lt;T&gt; tasks = null; 
	Repository&lt;S&gt; results = null; 
	Compute&lt;T,S&gt; function = null; 

	public ComputerThread(Repository&lt;T&gt; tasks, Repository&lt;S&gt; results, Compute&lt;T,S&gt; function) {
		this.tasks = tasks; 
		this.results = results; 
		this.function = function; 
		return;
	}

	public void run() {
		while(true) {
			T task = null; 
			try {
				task = tasks.extract();
			} catch (EndOfStreamException e) {
		…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title>Use cases</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/ucprogetto</link>
            <description>Use cases

	*  un client apre un file in scrittura sul file system sicuro e vi copia il contenuto di un file locale. Successivamente un altro client apre lo stesso file in lettura e lo copia sul file system locale. Il nuovo file ha lo stesso contenuto del file originale</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/lpr-b-2007-2008/udpservercomm</link>
            <description>package nfs;

import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * this is used to call a server and wait for a response, taking into account that messages can be lost.
 * The calling message is supposed to be in a datagram packet and the answer itself is given back as a datagram packet
 * 
 * @author marcod
 *
 */
public class UDPServerComm {

	/**
	 * parameters to reach the serve…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Sep 2008 14:08:53 +0000</pubDate>
        </item>
    </channel>
</rss>
