<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://didawiki.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</title>
        <description></description>
        <link>https://didawiki.di.unipi.it/</link>
        <lastBuildDate>Sat, 04 Apr 2026 12:51:08 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://didawiki.di.unipi.it/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
            <title>DidaWiki</title>
            <link>https://didawiki.di.unipi.it/</link>
        </image>
        <item>
            <title>Risultati scritto terzo appello AEb A.A. 2007-2008</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Thu, 12 Jun 2008 20:27:07 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 28 Sep 2007 09:09:50 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 28 Sep 2007 09:08:34 +0000</pubDate>
        </item>
        <item>
            <title>Home page didattica 2007--2008</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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 Mercoledì   15-18   Stanza 364E, Dipartimento di Informatica</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 24 Sep 2008 14:15:44 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 09:55:51 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 09:54:48 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 28 Sep 2007 08:16:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 10:01:08 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 09:55:25 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 10:01:59 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 12 Oct 2007 13:26:31 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 04 Feb 2008 14:19:30 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 26 Oct 2007 08:10:43 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 04 Feb 2008 14:17:48 +0000</pubDate>
        </item>
        <item>
            <title>Consegne LPRb 6o appello</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 08 Oct 2007 07:25:38 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 23 Nov 2007 13:55:31 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 23 Nov 2007 13:56:13 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:44:13 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 23 Nov 2007 14:06:04 +0000</pubDate>
        </item>
        <item>
            <title>LPRb 2007--2008: Esercizi assegnati a lezione</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 10:02:39 +0000</pubDate>
        </item>
        <item>
            <title>F.A.Q. e note sul progetto conclusivo LPRb 07-08</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 01 Jul 2008 04:20:37 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 18:14:54 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:12:12 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 28 Sep 2007 09:09:16 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 09:56:15 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 10:00:45 +0000</pubDate>
        </item>
        <item>
            <title>Laboratorio di Programmazione di Rete - Corso B</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/lezioni</link>
            <description>Laboratorio di Programmazione di Rete - Corso B

A.A. 2008-2009 - Elenco delle lezioni
  N    Data    Ora    Tipo lezione    Aula    Argomento    1   Lun 22/09  9-13   Esercitazioni    H   Introduzione corso, Test di Ingresso   2   Mer 24/09  11-13</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 21 Sep 2008 17:58:01 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 09:56:52 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 07 Dec 2007 10:01:33 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 23 Nov 2007 13:56:55 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 18:16:19 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:41:20 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:35:55 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:43:44 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 28 Sep 2007 08:17:36 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 18:52:24 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 18:53:47 +0000</pubDate>
        </item>
        <item>
            <title>Note (LPRb 2007--2008)</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Wed, 05 Dec 2007 08:43:54 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 18:54:45 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 19:00:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 30 Oct 2007 17:52:00 +0000</pubDate>
        </item>
        <item>
            <title>Progetto conclusivo LPRb A. A. 2007-2008</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 09 Sep 2008 14:40:39 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 18:55:18 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 19:01:49 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:14:25 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:15:11 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:16:49 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:13:35 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 18:14:02 +0000</pubDate>
        </item>
        <item>
            <title>Risultati 1a prova di verifica di Architetture degli elaboratori (Corso B)</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 09 Nov 2007 15:31:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 19:01:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 18:56:37 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 12 Oct 2007 13:27:07 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 12 Oct 2007 13:28:02 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 26 Oct 2007 15:39:41 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 18:16:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:41:50 +0000</pubDate>
        </item>
        <item>
            <title>Laboratorio di Programmazione di Rete - corso B</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/start</link>
            <description>Laboratorio di Programmazione di Rete - corso B

 Le comunicazioni e le pagine relative all&#039;ultimo appello dell&#039;anno accademico 2007-2008 sono disponibili seguendo i link sotto “Teaching” nella home page di Danelutto: pagina degli avvisi e pagina del corso A.A. 07-08 

	*  LPR-B-08: Anno Accademico 2008-09

	*  LPR-B-09: Anno Accademico 2009-10

Prerequisiti

	*  Laboratori dei primi due anni.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 22 Sep 2009 17:33:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:15:43 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Wed, 24 Oct 2007 09:05:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 22 Oct 2007 14:38:29 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Wed, 10 Oct 2007 08:53:08 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 30 Oct 2007 17:49:59 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Tue, 13 Nov 2007 19:02:07 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 13:00:32 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 12:58:53 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 12:59:46 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 13:04:09 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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, 05 Oct 2007 18:15:45 +0000</pubDate>
        </item>
        <item>
            <title>Use cases</title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 04 Feb 2008 14:16:27 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/lpr-b/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>Mon, 19 Nov 2007 15:17:32 +0000</pubDate>
        </item>
    </channel>
</rss>
